/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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]!./vendor/spryker-shop/agent-widget/src/SprykerShop/Yves/AgentWidget/Theme/default/components/molecules/agent-navigation/style.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.agent-navigation__dropdown > .agent-navigation__dropdown-item[position-right] {
  left: auto;
  right: 0;
}
.agent-navigation__name {
  position: relative;
  padding-right: 1.5rem;
}
.agent-navigation__caret {
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/AgentWidget/Theme/default/components/molecules/customer-list/customer-list.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.customer-list__container-item {
  cursor: pointer;
  padding: 0;
}
.customer-list__container-item:hover {
  color: #ff4859;
  text-decoration: underline;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/AgentWidget/Theme/default/components/organisms/agent-control-bar/agent-control-bar.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.agent-control-bar {
  position: relative;
  border-bottom: 0.0625rem solid #f5f5f5;
  z-index: 404;
}
@media only screen and (min-width: 48.125rem) {
  .agent-control-bar {
    border-bottom: none;
  }
}
.agent-control-bar__content {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  padding: 0 1rem;
}
@media only screen and (min-width: 34.375rem) {
  .agent-control-bar__content {
    flex-wrap: nowrap;
  }
}
.agent-control-bar__col {
  flex-grow: 0;
  flex-basis: auto;
  padding: 0.5rem 0 0.75rem;
}
@media only screen and (min-width: 34.375rem) {
  .agent-control-bar__col {
    padding-top: 0;
  }
}
@media only screen and (min-width: 48.125rem) {
  .agent-control-bar__col {
    padding-top: 0.75rem;
  }
}
.agent-control-bar__customer {
  max-width: 45%;
}
.agent-control-bar__customer--search {
  flex-grow: 1;
  width: 100%;
  max-width: none;
  border-bottom: 0.0625rem solid #f5f5f5;
}
@media only screen and (min-width: 34.375rem) {
  .agent-control-bar__customer--search {
    width: auto;
    min-width: 38%;
    max-width: 60%;
    border-bottom: none;
  }
}
@media only screen and (min-width: 48.125rem) {
  .agent-control-bar__customer--search {
    max-width: 50%;
  }
}
@media only screen and (min-width: 60.625rem) {
  .agent-control-bar__customer--search {
    flex-grow: 0;
  }
}
.agent-control-bar__title {
  line-height: 1.1;
  font-size: 0.75rem;
  padding-bottom: 0.3125rem;
}
.agent-control-bar__agent {
  margin-left: auto;
  max-width: 45%;
}
.agent-control-bar__agent--search {
  max-width: 100%;
  margin-left: 0;
}
@media only screen and (min-width: 34.375rem) {
  .agent-control-bar__agent--search {
    padding: 0;
    margin-left: auto;
    max-width: 35%;
  }
}
@media only screen and (min-width: 48.125rem) {
  .agent-control-bar__agent--search {
    max-width: 45%;
  }
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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]!./vendor/spryker-shop/cart-page/src/SprykerShop/Yves/CartPage/Theme/default/components/molecules/product-cart-item/style.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.product-cart-item {
  position: relative;
  display: flex;
  flex-direction: column;
}
.product-cart-item__name {
  font-weight: 700;
  color: #111;
}
.product-cart-item__actions {
  margin-top: 1rem;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  justify-content: flex-end;
}
.product-cart-item__actions--spacingless {
  margin-top: 0;
}
.product-cart-item__actions-row {
  display: flex;
  width: 100%;
}
@media only screen and (min-width: 770px) {
  .product-cart-item {
    flex-direction: row;
    justify-content: space-between;
  }
}
.product-cart-item__col {
  margin-right: auto;
  margin-left: auto;
}
.product-cart-item__col:first-child {
  margin-left: 0;
}
.product-cart-item__col:last-child {
  margin-right: 0;
}
.product-cart-item__actions {
  flex-grow: 0;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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]!./vendor/spryker-shop/configurable-bundle-note-widget/src/SprykerShop/Yves/ConfigurableBundleNoteWidget/Theme/default/components/molecules/readonly-bundled-note/style.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.readonly-bundled-note__title {
  font-size: 0.875rem;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ConfigurableBundlePage/Theme/default/components/molecules/configurator-button/configurator-button.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.configurator-button {
  transition: box-shadow 250ms ease-in-out, background-color 250ms ease-in-out;
  display: inline-block;
  padding: calc(0.25rem + 1px) calc(0.5rem + 1px);
  background-color: #00afb4;
  border: none;
  border-radius: 0;
  color: #ffffff;
  text-align: center;
  cursor: pointer;
  transition: all 250ms ease-in-out;
  background: #111;
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0);
  padding: 0.9375rem 1rem;
  border: none;
  border-radius: 0.125rem;
  text-align: center;
  font: 700 0.9375rem/1.125rem "Circular", sans-serif;
}
.page-loading .configurator-button {
  transition: none;
}
.configurator-button:hover, .configurator-button:focus {
  background-color: #007d81;
  text-decoration: none;
}
.configurator-button:active {
  background-color: #00afb4;
  text-decoration: none;
  box-shadow: inset 0 2px 7px 0 #007d81;
}
.configurator-button--hollow {
  padding: 0.25rem 0.5rem;
  background-color: #ffffff;
  border: 1px solid #00afb4;
  color: #00afb4;
}
.configurator-button--hollow:hover, .configurator-button--hollow:focus {
  background-color: #68fbff;
}
.configurator-button--hollow:active {
  background-color: #68fbff;
  box-shadow: inset 0 2px 7px 0 rgba(0, 175, 180, 0.7);
}
.configurator-button--expand {
  width: 100%;
}
.configurator-button--info {
  background-color: #f0ede6;
}
.configurator-button--info:hover, .configurator-button--info:focus {
  background-color: #ddd6c6;
}
.configurator-button--info:active {
  background-color: #f0ede6;
  box-shadow: inset 0 2px 7px 0 #ddd6c6;
}
.configurator-button--info.configurator-button--hollow {
  background-color: #ffffff;
  border-color: #f0ede6;
  color: #f0ede6;
}
.configurator-button--info.configurator-button--hollow:hover, .configurator-button--info.configurator-button--hollow:focus {
  background-color: white;
}
.configurator-button--info.configurator-button--hollow:active {
  background-color: white;
  box-shadow: inset 0 2px 7px 0 rgba(240, 237, 230, 0.7);
}
.configurator-button--warning {
  background-color: #f37849;
}
.configurator-button--warning:hover, .configurator-button--warning:focus {
  background-color: #f05519;
}
.configurator-button--warning:active {
  background-color: #f37849;
  box-shadow: inset 0 2px 7px 0 #f05519;
}
.configurator-button--warning.configurator-button--hollow {
  background-color: #ffffff;
  border-color: #f37849;
  color: #f37849;
}
.configurator-button--warning.configurator-button--hollow:hover, .configurator-button--warning.configurator-button--hollow:focus {
  background-color: #fef4f0;
}
.configurator-button--warning.configurator-button--hollow:active {
  background-color: #fef4f0;
  box-shadow: inset 0 2px 7px 0 rgba(243, 120, 73, 0.7);
}
.configurator-button--success {
  background-color: #4ac38e;
}
.configurator-button--success:hover, .configurator-button--success:focus {
  background-color: #36a474;
}
.configurator-button--success:active {
  background-color: #4ac38e;
  box-shadow: inset 0 2px 7px 0 #36a474;
}
.configurator-button--success.configurator-button--hollow {
  background-color: #ffffff;
  border-color: #4ac38e;
  color: #4ac38e;
}
.configurator-button--success.configurator-button--hollow:hover, .configurator-button--success.configurator-button--hollow:focus {
  background-color: #d0efe2;
}
.configurator-button--success.configurator-button--hollow:active {
  background-color: #d0efe2;
  box-shadow: inset 0 2px 7px 0 rgba(74, 195, 142, 0.7);
}
.configurator-button--alert {
  background-color: #cb3d49;
}
.configurator-button--alert:hover, .configurator-button--alert:focus {
  background-color: #a82d37;
}
.configurator-button--alert:active {
  background-color: #cb3d49;
  box-shadow: inset 0 2px 7px 0 #a82d37;
}
.configurator-button--alert.configurator-button--hollow {
  background-color: #ffffff;
  border-color: #cb3d49;
  color: #cb3d49;
}
.configurator-button--alert.configurator-button--hollow:hover, .configurator-button--alert.configurator-button--hollow:focus {
  background-color: #f1cacd;
}
.configurator-button--alert.configurator-button--hollow:active {
  background-color: #f1cacd;
  box-shadow: inset 0 2px 7px 0 rgba(203, 61, 73, 0.7);
}
.configurator-button[disabled], .configurator-button[data-disabled], .configurator-button--disabled {
  background-color: #dadada;
  border-color: #dadada;
  pointer-events: none;
  color: #595959;
}
.configurator-button[disabled]:hover, .configurator-button[disabled]:focus, .configurator-button[data-disabled]:hover, .configurator-button[data-disabled]:focus, .configurator-button--disabled:hover, .configurator-button--disabled:focus {
  background-color: #dadada;
}
.page-loading .configurator-button {
  transition: none;
}
.configurator-button:hover, .configurator-button:focus, .configurator-button--success {
  background: #ff4859;
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0);
}
.configurator-button--additional-indention {
  background: rgba(255, 255, 255, 0);
  color: rgba(17, 17, 17, 0.24);
  border-color: rgba(255, 255, 255, 0);
  padding: 1rem;
  font-weight: 500;
  font-size: 0.8125rem;
  letter-spacing: 0.1375rem;
  text-transform: uppercase;
  margin: 0;
}
.configurator-button--additional-indention:hover, .configurator-button--additional-indention:active, .configurator-button--additional-indention:focus {
  background: #f5f5f5;
  color: #111;
  border-color: rgba(255, 255, 255, 0);
  box-shadow: none;
}
.configurator-button--link {
  padding: 0;
  background: none;
  font: 400 1rem/1.125rem "Calibre", sans-serif;
  color: rgba(17, 17, 17, 0.24);
}
.configurator-button--link:hover, .configurator-button--link:focus {
  background: none;
  color: rgba(17, 17, 17, 0.24);
  text-decoration: underline;
}
.configurator-button--active {
  background: #f5f5f5;
  color: #111;
  border-color: rgba(255, 255, 255, 0);
}
.configurator-button--selected {
  background: rgba(0, 175, 180, 0.1);
  color: #00afb4;
  border-color: rgba(255, 255, 255, 0);
}
.configurator-button--summary {
  background: #111;
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0);
}
.configurator-button--summary:hover {
  background: #ff4859;
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0);
}
.configurator-button[disabled] {
  background: #dedede;
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0);
}
.configurator-button[disabled]:hover {
  background: #dedede;
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0);
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ConfigurableBundlePage/Theme/default/components/molecules/configurator-message/configurator-message.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.configurator-message {
  display: flex;
  flex-grow: 1;
  justify-content: center;
  align-items: center;
  margin: 0.5rem 0.5rem 0.5rem 1rem;
  border: 1px solid #f0f0f0;
  margin: 0.5rem;
  border: none;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ConfigurableBundlePage/Theme/default/components/molecules/configurator-product/configurator-product.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.configurator-product {
  position: relative;
  display: flex;
  flex-direction: column;
  flex-direction: row;
  transition: box-shadow 250ms ease-in-out;
  margin: 0 0 0.625rem;
  flex-direction: column;
  z-index: 10;
}
.configurator-product__name {
  font-weight: 700;
  color: #111;
}
.configurator-product__actions {
  margin-top: 1rem;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  justify-content: flex-end;
}
.configurator-product__actions--spacingless {
  margin-top: 0;
}
.configurator-product__actions-row {
  display: flex;
  width: 100%;
}
.configurator-product__actions {
  flex-grow: 0;
}
.page-loading .configurator-product {
  transition: none;
}
.no-touch .configurator-product::before {
  transition: opacity 250ms ease-in-out;
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(to bottom, #111, rgba(17, 17, 17, 0.05));
  opacity: 0;
  z-index: 10;
}
.page-loading .no-touch .configurator-product::before {
  transition: none;
}
.no-touch .configurator-product:hover {
  box-shadow: 0.125rem 0.625rem 1.875rem 0 rgba(0, 0, 0, 0.1);
  z-index: 11;
}
.no-touch .configurator-product:hover::before {
  opacity: 0.05;
  z-index: 11;
}
@media only screen and (min-width: 34.375rem) {
  .configurator-product {
    padding-right: 1.25rem;
    background-color: rgba(17, 17, 17, 0.05);
    flex-direction: row;
  }
}
@media only screen and (min-width: 60.625rem) {
  .configurator-product {
    padding-right: 2.5rem;
  }
}
.configurator-product__col {
  padding: 1.5rem 0;
  position: relative;
}
.configurator-product__col:not(.configurator-product__col--image-container) {
  z-index: 12;
}
@media only screen and (min-width: 34.375rem) {
  .configurator-product__col:not(.configurator-product__col--image-container) {
    padding-top: 2.1875rem;
  }
}
.configurator-product__col--image-container {
  position: relative;
  background-color: #ffffff;
  padding: 0;
}
.configurator-product__col--image-container::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(17, 17, 17, 0.05);
  z-index: 10;
}
.configurator-product__col--description {
  padding: 0.9375rem 0.9375rem 0;
}
@media only screen and (min-width: 34.375rem) {
  .configurator-product__col--description {
    padding: 0 1.875rem;
  }
}
.configurator-product__name {
  font-weight: 500;
  font-family: "Circular", sans-serif;
  margin-bottom: 0.5rem;
  display: inline-block;
}
.configurator-product__sku {
  display: block;
  color: #555;
  font-weight: 300;
  line-height: 1.125rem;
  text-transform: uppercase;
  letter-spacing: 0.016875rem;
}
.configurator-product__price {
  margin-bottom: 1.875rem;
  font: 300 1.125rem "Circular", sans-serif;
  letter-spacing: 0.01875rem;
  color: #333;
}
@media only screen and (min-width: 34.375rem) {
  .configurator-product__price {
    text-align: right;
  }
}
.configurator-product__actions {
  margin: 0;
  padding: 0 0.9375rem;
}
@media only screen and (min-width: 34.375rem) {
  .configurator-product__actions {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
    padding: 0;
  }
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ConfigurableBundlePage/Theme/default/components/molecules/configured-bundle-total/configured-bundle-total.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.configured-bundle-total {
  padding: 0.5rem;
  margin: 1rem 0.5rem;
  background: #f0f0f0;
  padding: 2.1875rem 1.25rem 1.25rem;
  margin: 2.375rem 0 0;
}
.configured-bundle-total__title {
  font: 700 0.9375rem/1.0625rem "Circular", sans-serif;
  letter-spacing: 0.05rem;
  margin: 0;
  text-transform: uppercase;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ConfigurableBundlePage/Theme/default/components/molecules/selected-product-list/selected-product-list.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.selected-product-list__header {
  /* prettier-ignore */
  margin: 0 0.5rem -0.5rem;
  padding: 0.5rem;
  border: 1px solid #f0f0f0;
  border-bottom: 0;
}
@media only screen and (min-width: 60.625rem) {
  .selected-product-list {
    margin-right: 1rem;
  }
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ConfigurableBundlePage/Theme/default/components/molecules/template-list/template-list.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.template-list__list {
  max-width: none;
  margin: 0 -1rem 2rem;
  align-items: stretch;
}
.template-list__item-title {
  transition: background-color 250ms ease-in-out, box-shadow 250ms ease-in-out;
  display: flex;
  flex-direction: column;
  position: relative;
  height: 100%;
  border-radius: 0.25rem;
  box-shadow: 0 0 0 rgba(255, 255, 255, 0);
  background-color: rgba(17, 17, 17, 0.05);
  overflow: hidden;
}
.page-loading .template-list__item-title {
  transition: none;
}
.template-list__item-title:hover {
  box-shadow: 0 0.125rem 1.4375rem 0 rgba(222, 222, 222, 0.5);
  text-decoration: none;
  background-color: rgba(255, 255, 255, 0);
}
.template-list__item-name {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  flex-grow: 1;
  padding: 1.25rem;
  min-height: 6.5rem;
  font-size: 1.375rem;
  font-weight: 300;
  color: #111;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ConfigurableBundleWidget/Theme/default/components/molecules/configured-bundle/configured-bundle.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.configured-bundle {
  padding-bottom: 1.25rem;
  margin: 0 1.25rem 1.25rem 0;
  border-top: 0.0625rem dotted #dedede;
  border-bottom: 0.0625rem dotted #dedede;
}
.configured-bundle__title {
  font-size: 16px;
}
.configured-bundle__container {
  padding: 0.5rem 0.9375rem;
  background: #f5f5f5;
  margin-bottom: 0.8125rem;
  border-bottom: 0.0625rem dotted #dedede;
}
.configured-bundle__quantity {
  display: flex;
  justify-content: center;
}
.configured-bundle__total {
  font: 400 16px "Circular", sans-serif;
  text-align: left;
}
@media only screen and (min-width: 75.25rem) {
  .configured-bundle__total {
    text-align: right;
  }
}
.configured-bundle__action {
  color: #111;
  opacity: 0.4;
}
.configured-bundle__action:hover, .configured-bundle__action:focus {
  text-decoration: none;
  color: inherit;
  opacity: 1;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ConfigurableBundleWidget/Theme/default/components/molecules/configured-bundle-product/configured-bundle-product.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.configured-bundle-product {
  padding: 0 0.9375rem 1.3125rem 0;
}
.configured-bundle-product--mini-cart {
  padding-left: 1.25rem;
}
.configured-bundle-product--mini-cart:last-child {
  padding-bottom: 0;
}
.configured-bundle-product__title {
  display: block;
  font: 400 1rem "Circular", sans-serif;
}
.configured-bundle-product__title--bold {
  font-weight: 700;
}
.configured-bundle-product__sku {
  font: 300 16px "Calibre", sans-serif;
  color: #555;
}
.configured-bundle-product__prices {
  padding-left: 1rem;
}
@media only screen and (min-width: 75.25rem) {
  .configured-bundle-product__prices {
    padding-left: 0;
  }
}
.configured-bundle-product__text {
  font: 400 16px "Circular", sans-serif;
}
.configured-bundle-product__text--secondary {
  color: #dedede;
}
.configured-bundle-product__text--bold {
  font-weight: 700;
}
.configured-bundle-product__text--mini-cart {
  color: #111;
  font-weight: 300;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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]!./vendor/spryker-shop/customer-page/src/SprykerShop/Yves/CustomerPage/Theme/default/components/molecules/order-detail-table/style.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.order-detail-table__content {
  padding-top: 0.5rem;
  margin-bottom: 1rem;
}
.order-detail-table__item {
  padding: 1rem;
  margin: 0 0.5rem 1rem;
  border: 1px solid #f0f0f0;
}
.order-detail-table__item--spacingless {
  margin-left: 0;
  margin-right: 0;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/FileManagerWidget/Theme/default/components/molecules/file-download-link/file-download-link.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.file-download-link--icon {
  width: 8.5rem;
}
.file-download-link__link--icon {
  display: block;
  font-size: 0.875rem;
  color: #595959;
}
.file-download-link__link--icon:hover {
  text-decoration: none;
}
.file-download-link__icon {
  display: block;
  padding: 2rem 0;
  margin-bottom: 0.25rem;
  background-color: white;
  color: #e18d94;
  text-align: center;
}
.file-download-link__name-wrapper {
  display: flex;
}
.file-download-link__name {
  display: inline-block;
  vertical-align: middle;
}
.file-download-link__name--icon {
  max-width: 6rem;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}
.file-download-link__extension {
  vertical-align: middle;
}
.file-download-link__size {
  display: block;
  opacity: 0.5;
}

.file-download-link__icon {
  background-color: #f6dee0;
  color: #d6656f;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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]!./vendor/spryker-shop/payment-app-widget/src/SprykerShop/Yves/PaymentAppWidget/Theme/default/components/molecules/paypal-buttons/style.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.paypal-buttons {
  line-height: 0;
  min-height: 1rem;
  position: relative;
}
.paypal-buttons__spinner {
  display: none;
}
.paypal-buttons.is-loading {
  pointer-events: none;
}
.paypal-buttons.is-loading .paypal-buttons__spinner {
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  width: 100%;
  height: 100%;
  z-index: 750;
  background-color: rgba(240, 240, 240, 0.5);
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/PriceProductVolumeWidget/Theme/default/components/molecules/volume-price/volume-price.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.volume-price {
  font-size: 1.25rem;
}
.volume-price__amount--original {
  font-size: 0.875rem;
  display: block;
  color: #bbbbbb;
  text-decoration: line-through;
}
.volume-price__tag {
  margin-right: 0.25rem;
  color: #ff4859;
}
.volume-price__price {
  display: inline-block;
  backface-visibility: hidden;
  transform: translateZ(0);
}
.volume-price__price--highlighted {
  animation: pulse-highlight 0.4s linear 2;
}

.volume-price__amount {
  color: #111;
  font: 400 1.25rem/1.5625rem "Circular", sans-serif;
}
@media only screen and (min-width: 60.625rem) {
  .volume-price__amount {
    font-size: 1.375rem;
    line-height: 1.75rem;
  }
}
.volume-price__amount--original {
  color: #dedede;
  font-size: 0.9375rem;
  line-height: 1.1875rem;
  text-align: right;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/PriceProductVolumeWidget/Theme/default/components/molecules/volume-price-table/volume-price-table.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.volume-price-table {
  font-size: 1.25rem;
  margin-top: 1.5rem;
}
.volume-price-table__table {
  font-size: 0.875rem;
  border-bottom: 0.0625rem solid #dedede;
}
.volume-price-table__title {
  padding: 0.5rem 0.75rem;
  font-weight: 700;
  text-align: left;
  border-bottom: 0.0625rem solid #dedede;
}
.volume-price-table__cell {
  padding: 0.5rem 0.75rem;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ProductBundleWidget/Theme/default/components/molecules/bundle-items/bundle-items.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.bundle-items__name {
  display: block;
  color: #111;
}
.bundle-items__item {
  display: flex;
  margin-bottom: 0.9375rem;
}
.bundle-items__item:last-child {
  margin-bottom: 0;
}
.bundle-items__details {
  padding: 0.3125rem 1.125rem;
}
.bundle-items__name {
  transition: color 250ms ease-in-out;
  font-family: "Circular", sans-serif;
  letter-spacing: 0.016875rem;
}
.page-loading .bundle-items__name {
  transition: none;
}
.bundle-items__name:hover {
  text-decoration: none;
}
.bundle-items__quantity {
  color: #555;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ProductComparisonPage/Theme/default/components/molecules/comparison-table/comparison-table.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.comparison-table {
  overflow-x: auto;
}
.comparison-table__list {
  display: grid;
  grid-template-columns: repeat(var(--comparison-repeat-columns, 1), minmax(10rem, 1fr));
  /* stylelint-disable selector-not-notation */
  /* stylelint-enable */
}
@media only screen and (min-width: 770px) {
  .comparison-table__list {
    grid-template-columns: minmax(min-content, 15rem) repeat(var(--comparison-repeat-columns, 1), minmax(15rem, 1fr));
  }
}
.comparison-table__list:not(.comparison-table__list--size-1):not(.comparison-table__list--size-2) {
  min-width: 50rem;
}
.comparison-table__list-row {
  display: contents;
}
@media only screen and (min-width: 770px) {
  .comparison-table__list-row:nth-child(2n+2) .comparison-table__list-cell {
    background: #dadada;
  }
}
.comparison-table__list-cell {
  padding: 0.5rem 0.25rem;
}
.comparison-table__list-cell--name, .comparison-table__list-cell--attribute {
  text-align: center;
}
.comparison-table__list-cell--name {
  background: #dadada;
}
@media only screen and (min-width: 770px) {
  .comparison-table__list-cell--name {
    text-align: left;
    background: rgba(255, 255, 255, 0);
  }
}
.comparison-table__list-cell--sm-full {
  grid-column: 1/-1;
}
@media only screen and (min-width: 770px) {
  .comparison-table__list-cell--sm-full {
    grid-column: 1;
  }
}
.comparison-table__list-cell--products {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.comparison-table__product {
  flex-grow: 1;
}
.comparison-table__product {
  padding: 0;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ProductGroupWidget/Theme/default/components/molecules/color-selector/color-selector.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.color-selector {
  cursor: default;
  position: relative;
  z-index: 350;
}
.color-selector__item {
  display: inline-block;
  width: 1rem;
  height: 1rem;
  border-radius: 100%;
  vertical-align: middle;
  position: relative;
}
.color-selector__item::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 0.875rem;
  height: 0.875rem;
  border: 0.125rem solid #ffffff;
  border-radius: 100%;
  visibility: hidden;
}
.color-selector__item::after {
  content: "";
  position: absolute;
  left: -0.0625rem;
  top: -0.0625rem;
  width: 1.125rem;
  height: 1.125rem;
  border-radius: 100%;
  border: 0.1875rem solid #ffffff;
}
.color-selector__item:not(:last-child) {
  margin-right: 0.25rem;
}
.color-selector__item:hover::after, .color-selector__item--active::after {
  visibility: hidden;
}
.color-selector__item:hover::before, .color-selector__item--active::before {
  visibility: visible;
}
.color-selector__item:hover .color-selector__tooltip {
  transform: scale(1);
}
.color-selector__tooltip {
  transition: all 250ms ease-in-out;
  transform: scale(0);
  transform-origin: bottom;
  position: absolute;
  top: -2.6875rem;
  left: -0.9375rem;
  background: #111;
  color: #ffffff;
  font: 300 1rem "Calibre", sans-serif;
  padding: 0.3125rem 0.6875rem 0.4375rem 0.625rem;
  white-space: nowrap;
  border-radius: 0.125rem;
}
.page-loading .color-selector__tooltip {
  transition: none;
}
.color-selector__tooltip::before {
  content: "";
  position: absolute;
  left: 1.0625rem;
  bottom: -0.25rem;
  border-radius: 0.125rem;
  background: #111;
  width: 0.625rem;
  height: 0.625rem;
  transform: rotate(45deg);
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ProductGroupWidget/Theme/default/components/molecules/product-detail-color-selector/product-detail-color-selector.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.color-selector {
  cursor: default;
  position: relative;
  z-index: 350;
}
.color-selector__item {
  display: inline-block;
  width: 1rem;
  height: 1rem;
  border-radius: 100%;
  vertical-align: middle;
  position: relative;
}
.color-selector__item::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 0.875rem;
  height: 0.875rem;
  border: 0.125rem solid #ffffff;
  border-radius: 100%;
  visibility: hidden;
}
.color-selector__item::after {
  content: "";
  position: absolute;
  left: -0.0625rem;
  top: -0.0625rem;
  width: 1.125rem;
  height: 1.125rem;
  border-radius: 100%;
  border: 0.1875rem solid #ffffff;
}
.color-selector__item:not(:last-child) {
  margin-right: 0.25rem;
}
.color-selector__item:hover::after, .color-selector__item--active::after {
  visibility: hidden;
}
.color-selector__item:hover::before, .color-selector__item--active::before {
  visibility: visible;
}
.color-selector__item:hover .color-selector__tooltip {
  transform: scale(1);
}
.color-selector__tooltip {
  transition: all 250ms ease-in-out;
  transform: scale(0);
  transform-origin: bottom;
  position: absolute;
  top: -2.6875rem;
  left: -0.9375rem;
  background: #111;
  color: #ffffff;
  font: 300 1rem "Calibre", sans-serif;
  padding: 0.3125rem 0.6875rem 0.4375rem 0.625rem;
  white-space: nowrap;
  border-radius: 0.125rem;
}
.page-loading .color-selector__tooltip {
  transition: none;
}
.color-selector__tooltip::before {
  content: "";
  position: absolute;
  left: 1.0625rem;
  bottom: -0.25rem;
  border-radius: 0.125rem;
  background: #111;
  width: 0.625rem;
  height: 0.625rem;
  transform: rotate(45deg);
}

.product-detail-color-selector {
  cursor: default;
  position: relative;
  z-index: 350;
}
.product-detail-color-selector__item {
  display: inline-block;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 100%;
  vertical-align: middle;
  position: relative;
}
.product-detail-color-selector__item::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 1.375rem;
  height: 1.375rem;
  border: 0.1875rem solid #ffffff;
  border-radius: 100%;
  visibility: hidden;
}
.product-detail-color-selector__item::after {
  content: "";
  position: absolute;
  left: -0.0625rem;
  top: -0.0625rem;
  width: 1.625rem;
  height: 1.625rem;
  border-radius: 100%;
  border: 0.25rem solid #ffffff;
}
.product-detail-color-selector__item:not(:last-child) {
  margin-right: 0.25rem;
}
.product-detail-color-selector__item:hover::after, .product-detail-color-selector__item--active::after {
  visibility: hidden;
}
.product-detail-color-selector__item:hover::before, .product-detail-color-selector__item--active::before {
  visibility: visible;
}
.product-detail-color-selector__item:hover .product-detail-color-selector__tooltip {
  transform: scale(1);
}
.product-detail-color-selector__tooltip {
  transition: all 250ms ease-in-out;
  transform: scale(0);
  transform-origin: bottom;
  position: absolute;
  top: -2.6875rem;
  left: -0.9375rem;
  background: #111;
  color: #ffffff;
  font: 300 1rem "Calibre", sans-serif;
  padding: 0.3125rem 0.6875rem 0.4375rem 0.625rem;
  white-space: nowrap;
  border-radius: 0.125rem;
}
.page-loading .product-detail-color-selector__tooltip {
  transition: none;
}
.product-detail-color-selector__tooltip::before {
  content: "";
  position: absolute;
  left: 1.0625rem;
  bottom: -0.25rem;
  border-radius: 0.125rem;
  background: #111;
  width: 0.625rem;
  height: 0.625rem;
  transform: rotate(45deg);
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ProductGroupWidget/Theme/default/components/molecules/product-item-color-selector/product-item-color-selector.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.color-selector {
  cursor: default;
  position: relative;
  z-index: 350;
}
.color-selector__item {
  display: inline-block;
  width: 1rem;
  height: 1rem;
  border-radius: 100%;
  vertical-align: middle;
  position: relative;
}
.color-selector__item::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 0.875rem;
  height: 0.875rem;
  border: 0.125rem solid #ffffff;
  border-radius: 100%;
  visibility: hidden;
}
.color-selector__item::after {
  content: "";
  position: absolute;
  left: -0.0625rem;
  top: -0.0625rem;
  width: 1.125rem;
  height: 1.125rem;
  border-radius: 100%;
  border: 0.1875rem solid #ffffff;
}
.color-selector__item:not(:last-child) {
  margin-right: 0.25rem;
}
.color-selector__item:hover::after, .color-selector__item--active::after {
  visibility: hidden;
}
.color-selector__item:hover::before, .color-selector__item--active::before {
  visibility: visible;
}
.color-selector__item:hover .color-selector__tooltip {
  transform: scale(1);
}
.color-selector__tooltip {
  transition: all 250ms ease-in-out;
  transform: scale(0);
  transform-origin: bottom;
  position: absolute;
  top: -2.6875rem;
  left: -0.9375rem;
  background: #111;
  color: #ffffff;
  font: 300 1rem "Calibre", sans-serif;
  padding: 0.3125rem 0.6875rem 0.4375rem 0.625rem;
  white-space: nowrap;
  border-radius: 0.125rem;
}
.page-loading .color-selector__tooltip {
  transition: none;
}
.color-selector__tooltip::before {
  content: "";
  position: absolute;
  left: 1.0625rem;
  bottom: -0.25rem;
  border-radius: 0.125rem;
  background: #111;
  width: 0.625rem;
  height: 0.625rem;
  transform: rotate(45deg);
}

.product-item-color-selector {
  cursor: default;
  position: relative;
  z-index: 350;
}
.product-item-color-selector__item {
  display: inline-block;
  width: 1rem;
  height: 1rem;
  border-radius: 100%;
  vertical-align: middle;
  position: relative;
}
.product-item-color-selector__item::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 0.875rem;
  height: 0.875rem;
  border: 0.125rem solid #ffffff;
  border-radius: 100%;
  visibility: hidden;
}
.product-item-color-selector__item::after {
  content: "";
  position: absolute;
  left: -0.0625rem;
  top: -0.0625rem;
  width: 1.125rem;
  height: 1.125rem;
  border-radius: 100%;
  border: 0.1875rem solid #ffffff;
}
.product-item-color-selector__item:not(:last-child) {
  margin-right: 0.25rem;
}
.product-item-color-selector__item:hover::after, .product-item-color-selector__item--active::after {
  visibility: hidden;
}
.product-item-color-selector__item:hover::before, .product-item-color-selector__item--active::before {
  visibility: visible;
}
.product-item-color-selector__item:hover .product-item-color-selector__tooltip {
  transform: scale(1);
}
.product-item-color-selector__tooltip {
  transition: all 250ms ease-in-out;
  transform: scale(0);
  transform-origin: bottom;
  position: absolute;
  top: -2.6875rem;
  left: -0.9375rem;
  background: #111;
  color: #ffffff;
  font: 300 1rem "Calibre", sans-serif;
  padding: 0.3125rem 0.6875rem 0.4375rem 0.625rem;
  white-space: nowrap;
  border-radius: 0.125rem;
}
.page-loading .product-item-color-selector__tooltip {
  transition: none;
}
.product-item-color-selector__tooltip::before {
  content: "";
  position: absolute;
  left: 1.0625rem;
  bottom: -0.25rem;
  border-radius: 0.125rem;
  background: #111;
  width: 0.625rem;
  height: 0.625rem;
  transform: rotate(45deg);
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ProductLabelWidget/Theme/default/components/molecules/flag/flag.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.flag {
  display: inline-block;
  padding: 0.0625rem 0.4375rem;
  background: rgba(222, 222, 222, 0.5);
  border-radius: 0.125rem;
  margin: 0 0.5rem 0.25rem 0;
}
@media only screen and (max-width: 34.3125rem) {
  .flag {
    padding: 0.1875rem 0.5rem;
    font-size: 0.6875rem;
  }
}
.flag--highlight {
  background-color: #00afb4;
  border: 0.0625rem solid #00afb4;
  color: #ffffff;
}
.flag--alternative {
  background: rgba(255, 255, 255, 0);
  border: 0.0625rem solid #00afb4;
  color: #00afb4;
  white-space: nowrap;
}
.flag--discontinued {
  background: rgba(255, 255, 255, 0);
  border: 0.0625rem solid #ff4859;
  color: #ff4859;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ProductLabelWidget/Theme/default/components/molecules/label-group/label-group.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.label-group {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  max-height: 100%;
  pointer-events: none;
  z-index: 350;
  padding: 1rem;
  font-family: "Calibre", sans-serif;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ProductLabelWidget/Theme/default/components/molecules/tag/tag.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.tag {
  display: inline-block;
  padding: 0.125rem 0.5rem;
  background: #ffffff;
  border-radius: 0.125rem;
  box-shadow: 0.0625rem 0.0625rem 0 0 rgba(0, 0, 0, 0.1);
  margin: 0 0.5rem 0.25rem 0;
}
@media only screen and (max-width: 34.3125rem) {
  .tag {
    padding: 0.1875rem 0.9375rem;
    font-size: 0.6875rem;
  }
}
.tag__text {
  text-transform: uppercase;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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]!./vendor/spryker-shop/product-option-widget/src/SprykerShop/Yves/ProductOptionWidget/Theme/default/components/molecules/shopping-list-product-option-list/style.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.shopping-list-product-option-list {
  margin: 0 -0.25rem;
}
.shopping-list-product-option-list__item {
  padding: 0 0.25rem 0.5rem;
  flex-basis: 0;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ProductReviewWidget/Theme/default/components/molecules/rating-selector/rating-selector.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.rating-selector {
  display: flex;
  margin-top: 0.375rem;
  align-items: center;
}
.rating-selector__steps {
  display: inline-block;
  direction: rtl;
  vertical-align: middle;
  line-height: 0;
  margin-right: 0.375rem;
}
.rating-selector__step {
  float: right;
  display: block;
  position: relative;
  cursor: pointer;
  overflow-x: hidden;
  font: 0/0 "Calibre", sans-serif;
}
.rating-selector__step--full:not(:first-child) {
  padding-right: 0.125rem;
}
.rating-selector__step--half {
  width: calc(1rem / 2);
}
.rating-selector__step--half:nth-child(odd) {
  margin-right: 0.125rem;
}
.rating-selector__star {
  transition: color 100ms ease-in-out;
  position: relative;
  width: 1rem;
  height: 1rem;
  color: #dedede;
}
.page-loading .rating-selector__star {
  transition: none;
}
.rating-selector__star--half-left {
  margin-right: calc(-1rem / 2);
}
.rating-selector__step:hover > .rating-selector__star, .rating-selector__step:hover ~ .rating-selector__step > .rating-selector__star {
  color: #ffbf1c;
}
.rating-selector__step--active > .rating-selector__star {
  color: #ffbf1c;
}
.rating-selector__review-count {
  font-size: 0.9375rem;
  color: #dedede;
  position: relative;
}
.rating-selector--small {
  margin: 0 0.1875rem 0 0.6875rem;
}
.rating-selector--small .rating-selector__step--half {
  width: calc(0.875rem / 2);
  height: 0.875rem;
}
.rating-selector--small .rating-selector__star {
  width: 0.875rem;
  height: 0.875rem;
}
.rating-selector--small .rating-selector__star--half-left {
  margin-right: calc(-0.875rem / 2);
}
.rating-selector--smallest .rating-selector__step--half {
  width: calc(0.75rem / 2);
  height: 0.75rem;
}
.rating-selector--smallest .rating-selector__step--half:nth-child(odd) {
  margin-right: 0.0625rem;
}
.rating-selector--smallest .rating-selector__star {
  width: 0.75rem;
  height: 0.75rem;
}
.rating-selector--smallest .rating-selector__star--half-left {
  margin-right: calc(-0.75rem / 2);
}
.rating-selector--readonly {
  pointer-events: none;
}
.rating-selector--expand {
  display: block;
}
.rating-selector--expand .rating-selector__steps {
  margin-top: -0.1875rem;
}
.rating-selector--marginless {
  margin: 0;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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]!./vendor/spryker-shop/product-search-widget/src/SprykerShop/Yves/ProductSearchWidget/Theme/default/components/molecules/product-quick-add-form/style.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.product-quick-add-form--row {
  padding: 0.5rem;
  background-color: #f0f0f0;
}
.product-quick-add-form__title--row {
  font-size: 1rem;
  font-weight: bold;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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]!./vendor/spryker-shop/product-search-widget/src/SprykerShop/Yves/ProductSearchWidget/Theme/default/components/molecules/product-search-item/style.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.product-search-item {
  position: relative;
  display: flex;
  flex-direction: column;
  flex-direction: row;
}
.product-search-item__name {
  font-weight: 700;
  color: #111;
}
.product-search-item__actions {
  margin-top: 1rem;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  justify-content: flex-end;
}
.product-search-item__actions--spacingless {
  margin-top: 0;
}
.product-search-item__actions-row {
  display: flex;
  width: 100%;
}
.product-search-item__actions {
  flex-grow: 0;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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]!./vendor/spryker-shop/product-search-widget/src/SprykerShop/Yves/ProductSearchWidget/Theme/default/components/molecules/products-list/style.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.products-list__item {
  cursor: pointer;
}
.products-list__item:hover, .products-list__item--selected {
  background-color: #f0f0f0;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ProductSetWidget/Theme/default/components/organisms/product-set-cms-content/product-set-cms-content.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.product-set-cms-content {
  margin-bottom: 3rem;
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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]!./vendor/spryker-shop/sales-configurable-bundle-widget/src/SprykerShop/Yves/SalesConfigurableBundleWidget/Theme/default/components/molecules/order-configured-bundle/style.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.order-configured-bundle {
  border-top: 1px solid #dadada;
  background: none;
}
.order-configured-bundle__col {
  vertical-align: top;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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]!./vendor/spryker-shop/sales-configurable-bundle-widget/src/SprykerShop/Yves/SalesConfigurableBundleWidget/Theme/default/components/molecules/order-configured-bundle-product/style.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.order-configured-bundle-product {
  background-color: #f4f4f4;
}
.order-configured-bundle-product:last-child {
  border-bottom: 1px solid #dadada;
}
.order-configured-bundle-product__col {
  vertical-align: top;
  padding: 0.25rem;
}
.order-configured-bundle-product__bullet {
  float: left;
  margin-right: 0.25rem;
}
.order-configured-bundle-product__content {
  display: block;
  overflow: hidden;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/SalesConfigurableBundleWidget/Theme/default/components/molecules/ordered-configured-bundle/ordered-configured-bundle.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.ordered-configured-bundle {
  margin: 0 1.25rem 1.25rem 0;
  border: 0.0625rem dotted #dedede;
}
.ordered-configured-bundle::after {
  content: "";
  display: table;
  clear: both;
}
.ordered-configured-bundle__title {
  font-size: 16px;
}
.ordered-configured-bundle__container {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  padding: 0.5rem 0.9375rem;
  background: #f5f5f5;
  margin-bottom: 0.8125rem;
  border-bottom: 0.0625rem dotted #dedede;
}
.ordered-configured-bundle__total {
  font: 400 16px "Circular", sans-serif;
}
@media only screen and (min-width: 48.125rem) {
  .ordered-configured-bundle__total {
    text-align: right;
  }
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/SalesConfigurableBundleWidget/Theme/default/components/molecules/ordered-configured-bundle-product/ordered-configured-bundle-product.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.ordered-configured-bundle-product {
  padding: 0 0.9375rem 1.3125rem 0.625rem;
}
.ordered-configured-bundle-product__thumbnail-wrapper {
  width: 7.5rem;
}
.ordered-configured-bundle-product__title {
  display: block;
  font: 500 0.9375rem "Circular", sans-serif;
}
.ordered-configured-bundle-product__sku {
  font: 300 16px "Calibre", sans-serif;
  color: #555;
}
.ordered-configured-bundle-product__text {
  font: 400 16px "Circular", sans-serif;
}
.ordered-configured-bundle-product__text--secondary {
  color: #dedede;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/TabsWidget/Theme/default/components/molecules/search-tabs/search-tabs.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.search-tabs {
  text-align: center;
  border-left: 0.0625rem solid #f0f0f0;
  border-bottom: 0.0625rem solid #f0f0f0;
}
.search-tabs__item {
  display: block;
  border-top: 0.0625rem solid #f0f0f0;
  border-right: 0.0625rem solid #f0f0f0;
}
@media only screen and (min-width: 34.375rem) {
  .search-tabs__item {
    display: inline-block;
    padding: 0.75rem 2rem;
    width: auto;
    min-width: auto;
  }
}
.search-tabs__item--active {
  position: relative;
  background-color: #ffffff;
}
.search-tabs__item--active::after {
  content: "";
  position: absolute;
  bottom: -0.0625rem;
  left: 0;
  display: block;
  width: 100%;
  height: 0.0625rem;
  background-color: #ffffff;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/WishlistWidget/Theme/default/components/molecules/wishlist-selector/wishlist-selector.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.wishlist-selector {
  position: relative;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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]!./vendor/spryker/multi-factor-auth/src/Spryker/Yves/MultiFactorAuth/Theme/default/components/molecules/multi-factor-authentication-content/style.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.multi-factor-authentication-content__type-selection .radio__container > .label--required::after {
  display: none;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/CartPage/Theme/default/templates/page-layout-cart/page-layout-cart.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.page-layout-cart {
  padding-bottom: 3.125rem;
  display: block;
}
@media only screen and (min-width: 48.125rem) {
  .page-layout-cart {
    padding-bottom: 11.25rem;
  }
}
.page-layout-cart__empty {
  margin-top: 3rem;
  margin-bottom: 3.125rem;
}
@media only screen and (min-width: 48.125rem) {
  .page-layout-cart__empty {
    margin-bottom: 0;
  }
}
.page-layout-cart__col {
  padding: 1.25rem 0 0;
}
@media only screen and (min-width: 48.125rem) {
  .page-layout-cart__col {
    padding-top: 3.75rem;
  }
}
@media only screen and (min-width: 48.125rem) {
  .page-layout-cart__col--content {
    padding-right: 6.25rem;
  }
}
@media only screen and (min-width: 48.125rem) {
  .page-layout-cart__col--sidebar {
    padding-left: 1.25rem;
    border-left: 0.0625rem dotted #dedede;
  }
}
.page-layout-cart__items-wrap {
  padding-top: 1.25rem;
  margin-bottom: 2.625rem;
}
@media only screen and (min-width: 48.125rem) {
  .page-layout-cart__items-wrap {
    padding-top: 2.375rem;
    margin-bottom: 5rem;
  }
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/CheckoutPage/Theme/default/templates/page-layout-checkout/page-layout-checkout.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.page-layout-checkout {
  max-width: 45.625rem;
  margin: 0 auto;
  padding-bottom: 3.75rem;
  display: block;
}
@media only screen and (min-width: 34.375rem) {
  .page-layout-checkout {
    padding-top: 2.5rem;
  }
}
@media only screen and (min-width: 48.125rem) {
  .page-layout-checkout {
    overflow: hidden;
  }
}
.page-layout-checkout--full-width {
  max-width: 100%;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/CheckoutWidget/Theme/default/views/cart-checkout-breadcrumb/cart-checkout-breadcrumb.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.cart-checkout-breadcrumb__wrap {
  text-align: center;
  padding-top: 3.5rem;
}
@media only screen and (min-width: 34.375rem) {
  .cart-checkout-breadcrumb__wrap {
    padding-top: 1.25rem;
    border-bottom: 0.0625rem dotted #dedede;
  }
}
.cart-checkout-breadcrumb__progress-wrap {
  display: inline-block;
  position: relative;
  min-width: 50%;
}
@media only screen and (min-width: 34.375rem) {
  .cart-checkout-breadcrumb__progress-wrap {
    min-width: 0;
  }
}
.cart-checkout-breadcrumb__progress-wrap::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  height: 0.0625rem;
  background-color: #111;
  opacity: 0.4;
}
@media only screen and (min-width: 34.375rem) {
  .cart-checkout-breadcrumb__progress-wrap::before {
    display: none;
  }
}
.cart-checkout-breadcrumb__progress-mob {
  position: absolute;
  left: 0;
  top: 0;
  height: 0.0625rem;
  width: 0;
  background-color: #111;
}
@media only screen and (min-width: 34.375rem) {
  .cart-checkout-breadcrumb__progress-mob {
    display: none;
  }
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/CustomerPage/Theme/default/templates/page-layout-customer/page-layout-customer.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.page-layout-customer {
  margin-bottom: 4.6875rem;
}
.page-layout-customer__form-wrap {
  padding-left: 1rem;
  padding-right: 1rem;
  max-width: 35.625rem;
  margin-left: auto;
  margin-right: auto;
}
@media only screen and (min-width: 34.375rem) {
  .page-layout-customer__form-wrap {
    padding-left: 0;
    padding-right: 0;
  }
}
.page-layout-customer--login-wrap {
  margin-top: 2.5rem;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/SalesReturnPage/Theme/default/templates/page-layout-sales-return/page-layout-sales-return.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.page-layout-sales-return {
  margin-bottom: 4.6875rem;
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/AgentWidget/Theme/default/components/molecules/agent-control-item/agent-control-item.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.agent-control-item {
  display: flex;
  align-items: center;
}
.agent-control-item__col {
  flex-grow: 0;
  flex-basis: auto;
}
.agent-control-item__icon {
  padding-right: 0.625rem;
}
@media only screen and (min-width: 60.625rem) {
  .agent-control-item__icon {
    padding-right: 0.9375rem;
  }
}
.agent-control-item__info {
  font-size: 0.75rem;
  line-height: normal;
  overflow: hidden;
}
.agent-control-item__title {
  margin-bottom: 0.25rem;
}
.agent-control-item__name {
  font-size: 0.625rem;
  font-weight: 700;
  color: #555;
  text-transform: uppercase;
  display: inline-block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}
.agent-control-item__name:hover, .agent-control-item__name:focus {
  color: #111;
}
.agent-control-item__button-wrapper {
  align-self: stretch;
  display: flex;
  align-items: flex-end;
  padding-left: 0.5rem;
}
.agent-control-item__button {
  color: #555;
  display: inline-block;
  font-size: 0;
  line-height: 0;
  padding: 0.3125rem 0.3125rem 0.1875rem;
}
.agent-control-item__button:hover, .agent-control-item__button:focus {
  color: #111;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/CartCodeWidget/Theme/default/components/molecules/cart-code-form/cart-code-form.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.cart-code-form--checkout {
  margin: 1.125rem 0;
  border-top: 0.0625rem dotted #dedede;
  border-bottom: 0.0625rem dotted #dedede;
}
.cart-code-form--checkout .grid {
  margin: 0;
}
.cart-code-form .label {
  display: none;
}
.cart-code-form .form__field {
  padding: 0;
}
.cart-code-form .form__action {
  margin: 0;
}
.cart-code-form .input {
  border-radius: 0.125rem 0 0 0.125rem;
  height: 3rem;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/CartNoteWidget/Theme/default/components/molecules/cart-note/cart-note.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.cart-note .label {
  display: none;
}
.cart-note .textarea {
  resize: none;
  min-height: 5.625rem;
  width: 100%;
}
.cart-note .form__field {
  padding: 0 !important;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/CartPage/Theme/default/components/molecules/cart-box/cart-box.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.cart-box {
  border-bottom: 0.0625rem dotted #dedede;
  padding: 1.125rem 0;
}
.cart-box__quantity {
  font: 1rem "Calibre", sans-serif;
  color: rgba(17, 17, 17, 0.5);
}
.cart-box--voucher {
  margin-top: 2rem;
  border-top: 0.0625rem dotted #dedede;
}
@media only screen and (min-width: 48.125rem) {
  .cart-box--voucher {
    margin-top: 3.5rem;
  }
}
.cart-box--reset-spacing {
  padding: 0;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/CartPage/Theme/default/components/molecules/cart-summary/cart-summary.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.cart-summary {
  margin-top: 3.5rem;
}
.cart-summary__inner {
  border-top: 0.0625rem dotted #dedede;
  border-bottom: 0.0625rem dotted #dedede;
  overflow: hidden;
  margin-bottom: 1.25rem;
}
@media only screen and (min-width: 48.125rem) {
  .cart-summary__inner {
    margin-bottom: 3.5rem;
  }
}
.cart-summary__total {
  text-transform: uppercase;
  font-weight: 700;
}
.cart-summary__item {
  font: 400 0.875rem "Circular", sans-serif;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/CheckoutPage/Theme/default/components/molecules/checkout-block/checkout-block.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.checkout-block {
  padding-bottom: 0.9375rem;
  margin-bottom: 0.9375rem;
}
@media only screen and (min-width: 48.125rem) {
  .checkout-block {
    padding-bottom: 1.25rem;
    margin-bottom: 1.25rem;
    border-bottom: 0.0625rem dotted #dedede;
  }
}
@media only screen and (min-width: 48.125rem) {
  .checkout-block--border-bottom-less {
    border-bottom: none;
  }
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/CheckoutPage/Theme/default/components/molecules/heading/heading.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin: 0 0 2rem;
  padding-bottom: 0.625rem;
  border-bottom: 0.0625rem dotted #dedede;
}
@media only screen and (min-width: 34.375rem) {
  .heading {
    margin-bottom: 3.625rem;
  }
}
.heading__logo {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  width: 5.8125rem;
  height: 2.25rem;
  border-radius: 0.125rem;
  border: solid 0.0625rem #f0ede6;
}
.heading__logo--indent {
  margin: 0 0.5rem 0.625rem 0;
}
.heading__logo--img {
  flex-shrink: 0;
  max-width: 70%;
  max-height: 90%;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/CheckoutPage/Theme/default/components/molecules/payment-card-information/payment-card-information.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.payment-card-information {
  margin-bottom: 1.25rem;
}
@media only screen and (min-width: 34.375rem) {
  .payment-card-information {
    margin-bottom: 0;
  }
}
.payment-card-information__item {
  font-weight: 300;
  line-height: 1.75rem;
  letter-spacing: -0.01125rem;
}
.payment-card-information__logo {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  width: 5.8125rem;
  height: 2.25rem;
  border-radius: 0.125rem;
  border: 0.0625rem solid #f0ede6;
}
.payment-card-information__logo-image {
  height: 1.25rem;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/CheckoutPage/Theme/default/components/molecules/shipment-sidebar/shipment-sidebar.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.shipment-sidebar {
  margin-top: -1.1875rem;
}
@media only screen and (min-width: 48.125rem) {
  .shipment-sidebar {
    margin-top: 0;
  }
}
.shipment-sidebar__item {
  background-color: #f5f5f5;
  margin: 0 -0.9375rem 0.625rem;
  padding: 1.25rem;
}
@media only screen and (min-width: 48.125rem) {
  .shipment-sidebar__item {
    margin: 0 0 1.25rem;
  }
}
.shipment-sidebar__item:last-child {
  margin-bottom: 0;
}
.shipment-sidebar__text {
  font-weight: 300;
  letter-spacing: -0.01125rem;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/CheckoutPage/Theme/default/components/molecules/success-page/success-page.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.success-page {
  padding: 0 1rem 3.75rem;
}
@media only screen and (min-width: 34.375rem) {
  .success-page {
    padding: 0 0 3.75rem;
  }
}
.success-page__text {
  margin-bottom: 2.5rem;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/CheckoutPage/Theme/default/components/molecules/summary-item/summary-item.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.summary-item {
  margin: 0 -1rem;
  max-width: none;
}
.summary-item:first-of-type .summary-item__box {
  padding-top: 0;
}
.summary-item__wrap:not(:first-child) {
  margin-top: 3.75rem;
}
@media only screen and (min-width: 34.375rem) {
  .summary-item__wrap:not(:first-child) {
    margin-top: 4.375rem;
  }
}
.summary-item > .col {
  padding: 0 1rem;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/CheckoutPage/Theme/default/components/molecules/summary-overview/summary-overview.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.summary-overview {
  margin: 1.25rem 0 1.875rem;
  border-top: 0.0625rem dotted #dedede;
  border-bottom: 0.0625rem dotted #dedede;
}
@media only screen and (min-width: 48.125rem) {
  .summary-overview {
    margin: 1.875rem 0 2.5rem;
  }
}
.summary-overview__list-item {
  font: 400 0.875rem/1.125rem "Circular", sans-serif;
  margin: 1.5rem 0;
}
.summary-overview__list-item--total {
  font-size: 0.9375rem;
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: 0.05rem;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/CheckoutPage/Theme/default/components/molecules/summary-page/summary-page.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.summary-page__col:not(:first-child) {
  margin-top: 3.75rem;
}
@media only screen and (min-width: 34.375rem) {
  .summary-page__col:not(:first-child) {
    margin-top: 0;
  }
}
.summary-page__address-indent {
  margin-top: 2.0625rem;
}
@media only screen and (min-width: 34.375rem) {
  .summary-page__address-indent {
    margin-top: 0;
  }
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/CheckoutPage/Theme/default/components/molecules/summary-sidebar/summary-sidebar.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.summary-sidebar {
  margin-top: -1.1875rem;
}
@media only screen and (min-width: 48.125rem) {
  .summary-sidebar {
    margin-top: 0;
  }
}
.summary-sidebar__item {
  background-color: #f5f5f5;
  margin: 0 -0.9375rem 0.625rem;
  padding: 1.25rem;
}
@media only screen and (min-width: 48.125rem) {
  .summary-sidebar__item {
    margin: 0 0 1.25rem;
  }
}
.summary-sidebar__item:last-child {
  margin-bottom: 0;
}
.summary-sidebar__text {
  font-weight: 300;
  letter-spacing: -0.01125rem;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/CmsBlockWidget/Theme/default/components/molecules/product-cms-block/product-cms-block.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.product-cms-block {
  font-size: 0.875rem;
  line-height: 1.3125rem;
  color: #111;
}
.product-cms-block > h1 {
  font: 500 0.9375rem/1.33 "Circular", sans-serif;
  padding: 3.125rem 0 0.6875rem;
  border-top: 0.0625rem dotted #dedede;
}
.product-cms-block p {
  margin: 0 0 0.6875rem;
}
.product-cms-block p:last-child {
  margin-bottom: 3.125rem;
}
.product-cms-block a {
  transition: color 250ms ease-in-out;
  text-decoration: underline;
  color: #111;
}
.page-loading .product-cms-block a {
  transition: none;
}
.product-cms-block a:hover {
  color: #ff4859;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/CmsSearchPage/Theme/default/components/molecules/search-cms-results/search-cms-results.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.search-cms-results__list {
  margin-bottom: 3.75rem;
}
.search-cms-results__item {
  padding: 0.6875rem 1.5625rem;
  border-bottom: 0.0625rem dotted #dedede;
  text-align: center;
  position: relative;
}
.search-cms-results__item:first-child {
  border-top: 0.0625rem dotted #dedede;
}
@media only screen and (min-width: 34.375rem) {
  .search-cms-results__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
}
@media only screen and (min-width: 60.625rem) {
  .search-cms-results__item {
    transition: border-bottom-color 250ms ease-in-out, box-shadow 250ms ease-in-out;
  }
  .page-loading .search-cms-results__item {
    transition: none;
  }
  .search-cms-results__item::before {
    transition: opacity 250ms ease-in-out;
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(to bottom, #111, rgba(17, 17, 17, 0.05));
    opacity: 0;
  }
  .page-loading .search-cms-results__item::before {
    transition: none;
  }
  .search-cms-results__item:hover {
    box-shadow: 0.125rem 0.625rem 1.875rem 0 rgba(0, 0, 0, 0.1);
    border-bottom-color: rgba(255, 255, 255, 0);
  }
  .search-cms-results__item:hover::before {
    opacity: 0.05;
  }
}
.search-cms-results__name {
  letter-spacing: 0.01875rem;
  font-family: "Circular", sans-serif;
  font-weight: 500;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  z-index: 10;
}
.search-cms-results__button {
  text-decoration-color: #ffffff;
  text-decoration-line: inherit;
}
.search-cms-results__button:hover {
  transition: text-decoration-color 250ms ease-in-out;
  text-decoration-color: #ff4859;
}
.page-loading .search-cms-results__button:hover {
  transition: none;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/CmsSearchPage/Theme/default/components/molecules/search-cms-sort/search-cms-sort.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.search-cms-sort {
  padding: 1.875rem 0 1.25rem 0.5rem;
}
.search-cms-sort__title {
  font: 400 1rem/1.5rem;
  color: #555;
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ConfigurableBundleNoteWidget/Theme/default/components/molecules/cart-configured-bundle-item-note/cart-configured-bundle-item-note.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.cart-configured-bundle-item-note {
  position: relative;
}
.cart-configured-bundle-item-note__container {
  background-color: #f5f5f5;
  padding: 1.125rem 0.9375rem;
}
.cart-configured-bundle-item-note__content {
  margin-top: 1.0625rem;
}
.cart-configured-bundle-item-note__text {
  font: 300 16px "Calibre", sans-serif;
  color: #111;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ConfigurableBundleNoteWidget/Theme/default/components/molecules/cart-configured-bundle-item-note-actions/cart-configured-bundle-item-note-actions.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.cart-configured-bundle-item-note-actions {
  margin-top: 0.9375rem;
}
.cart-configured-bundle-item-note-actions__item {
  margin: 0 1.6875rem 0.3125rem 0;
  font: 400 16px "Calibre", sans-serif;
  background: rgba(255, 255, 255, 0);
  color: #555;
  cursor: pointer;
}
@media only screen and (min-width: 75.25rem) {
  .cart-configured-bundle-item-note-actions__item {
    margin-bottom: 0;
  }
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ConfigurableBundlePage/Theme/default/components/molecules/configurator/configurator.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.configurator {
  padding: 1.25rem 0 4.375rem;
}
.configurator__content {
  border-radius: 0.25rem;
  border: 0.0625rem solid #dedede;
}
@media only screen and (min-width: 34.375rem) {
  .configurator__content {
    padding-bottom: 1.875rem;
  }
}
.configurator__summary-actions {
  padding: 0 1.25rem 1.25rem;
  background-color: #f0f0f0;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ConfigurableBundlePage/Theme/default/components/molecules/configurator-sidebar/configurator-sidebar.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.configurator-sidebar {
  margin: 0 0 2.5rem;
}
.configurator-sidebar__item {
  width: 100%;
  border-bottom: 0.0625rem solid #dedede;
}
@media only screen and (min-width: 60.625rem) {
  .configurator-sidebar__item {
    width: auto;
    flex-grow: 1;
    border-left: 0.0625rem solid #dedede;
  }
}
@media only screen and (min-width: 60.625rem) {
  .configurator-sidebar__item:first-child {
    border-left: 0;
  }
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ConfigurableBundleWidget/Theme/default/components/molecules/configured-bundle-secondary/configured-bundle-secondary.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.configured-bundle {
  padding-bottom: 1.25rem;
  margin: 0 1.25rem 1.25rem 0;
  border-top: 0.0625rem dotted #dedede;
  border-bottom: 0.0625rem dotted #dedede;
}
.configured-bundle__title {
  font-size: 16px;
}
.configured-bundle__container {
  padding: 0.5rem 0.9375rem;
  background: #f5f5f5;
  margin-bottom: 0.8125rem;
  border-bottom: 0.0625rem dotted #dedede;
}
.configured-bundle__quantity {
  display: flex;
  justify-content: center;
}
.configured-bundle__total {
  font: 400 16px "Circular", sans-serif;
  text-align: left;
}
@media only screen and (min-width: 75.25rem) {
  .configured-bundle__total {
    text-align: right;
  }
}
.configured-bundle__action {
  color: #111;
  opacity: 0.4;
}
.configured-bundle__action:hover, .configured-bundle__action:focus {
  text-decoration: none;
  color: inherit;
  opacity: 1;
}

.configured-bundle-secondary {
  padding-bottom: 1.25rem;
  margin: 0 1.25rem 1.25rem 0;
  border-top: 0.0625rem dotted #dedede;
  border-bottom: 0.0625rem dotted #dedede;
  margin-right: 0;
}
.configured-bundle-secondary__title {
  font-size: 16px;
}
.configured-bundle-secondary__container {
  padding: 0.5rem 0.9375rem;
  background: #f5f5f5;
  margin-bottom: 0.8125rem;
  border-bottom: 0.0625rem dotted #dedede;
}
.configured-bundle-secondary__quantity {
  display: flex;
  justify-content: center;
}
.configured-bundle-secondary__total {
  font: 400 16px "Circular", sans-serif;
  text-align: left;
}
@media only screen and (min-width: 75.25rem) {
  .configured-bundle-secondary__total {
    text-align: right;
  }
}
.configured-bundle-secondary__action {
  color: #111;
  opacity: 0.4;
}
.configured-bundle-secondary__action:hover, .configured-bundle-secondary__action:focus {
  text-decoration: none;
  color: inherit;
  opacity: 1;
}
.configured-bundle-secondary__title {
  font-size: 1.25rem;
}
.configured-bundle-secondary__bundle-total {
  width: 100%;
  justify-content: flex-start;
  margin-left: -1rem;
}
@media only screen and (min-width: 75.25rem) {
  .configured-bundle-secondary__bundle-total {
    width: 50%;
    justify-content: flex-end;
    margin-left: 0;
  }
}
.configured-bundle-secondary__col {
  justify-content: flex-start;
  margin-left: 0.3125rem;
}
@media only screen and (min-width: 75.25rem) {
  .configured-bundle-secondary__col {
    justify-content: center;
    margin-left: 0;
  }
}
.configured-bundle-secondary__quantity {
  display: flex;
}
@media only screen and (min-width: 75.25rem) {
  .configured-bundle-secondary__quantity {
    justify-content: center;
  }
}
.configured-bundle-secondary__tolal {
  font-weight: 500;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ConfigurableBundleWidget/Theme/default/components/molecules/configured-bundle-simple/configured-bundle-simple.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.configured-bundle {
  padding-bottom: 1.25rem;
  margin: 0 1.25rem 1.25rem 0;
  border-top: 0.0625rem dotted #dedede;
  border-bottom: 0.0625rem dotted #dedede;
}
.configured-bundle__title {
  font-size: 16px;
}
.configured-bundle__container {
  padding: 0.5rem 0.9375rem;
  background: #f5f5f5;
  margin-bottom: 0.8125rem;
  border-bottom: 0.0625rem dotted #dedede;
}
.configured-bundle__quantity {
  display: flex;
  justify-content: center;
}
.configured-bundle__total {
  font: 400 16px "Circular", sans-serif;
  text-align: left;
}
@media only screen and (min-width: 75.25rem) {
  .configured-bundle__total {
    text-align: right;
  }
}
.configured-bundle__action {
  color: #111;
  opacity: 0.4;
}
.configured-bundle__action:hover, .configured-bundle__action:focus {
  text-decoration: none;
  color: inherit;
  opacity: 1;
}

.configured-bundle-simple {
  padding-bottom: 1.25rem;
  margin: 0 1.25rem 1.25rem 0;
  border-top: 0.0625rem dotted #dedede;
  border-bottom: 0.0625rem dotted #dedede;
  margin-right: 0;
  margin-bottom: 0;
  padding-bottom: 0.625rem;
}
.configured-bundle-simple__title {
  font-size: 16px;
}
.configured-bundle-simple__container {
  padding: 0.5rem 0.9375rem;
  background: #f5f5f5;
  margin-bottom: 0.8125rem;
  border-bottom: 0.0625rem dotted #dedede;
}
.configured-bundle-simple__quantity {
  display: flex;
  justify-content: center;
}
.configured-bundle-simple__total {
  font: 400 16px "Circular", sans-serif;
  text-align: left;
}
@media only screen and (min-width: 75.25rem) {
  .configured-bundle-simple__total {
    text-align: right;
  }
}
.configured-bundle-simple__action {
  color: #111;
  opacity: 0.4;
}
.configured-bundle-simple__action:hover, .configured-bundle-simple__action:focus {
  text-decoration: none;
  color: inherit;
  opacity: 1;
}
.configured-bundle-simple__title {
  font-size: 1rem;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ContentBannerWidget/Theme/default/components/molecules/banner-jumbotron/banner-jumbotron.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.banner-jumbotron {
  border-radius: 0.25rem;
  overflow: hidden;
}
.banner-jumbotron__container {
  height: 10rem;
  background: linear-gradient(to left top, #dedede, #555) no-repeat center/cover;
  text-align: center;
  position: relative;
}
@media only screen and (min-width: 550px) {
  .banner-jumbotron__container {
    height: 15rem;
  }
}
@media only screen and (min-width: 970px) {
  .banner-jumbotron__container {
    height: 25rem;
  }
}
.banner-jumbotron__link {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  z-index: 11;
}
.banner-jumbotron__title {
  color: #ffffff;
  font: 700 1.4375rem/1.5 "Circular", sans-serif;
  letter-spacing: -0.05rem;
}
@media only screen and (min-width: 48.125rem) {
  .banner-jumbotron__title {
    font-size: 2.125rem;
  }
}
@media only screen and (min-width: 60.625rem) {
  .banner-jumbotron__title {
    font-size: 3.5625rem;
  }
}
.banner-jumbotron__text {
  color: #ffffff;
  font: 300 0.6875rem "Calibre", sans-serif;
  letter-spacing: 0.0125rem;
}
@media only screen and (min-width: 48.125rem) {
  .banner-jumbotron__text {
    font-size: 1rem;
  }
}
@media only screen and (min-width: 60.625rem) {
  .banner-jumbotron__text {
    font-size: 1.625rem;
  }
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/NavigationWidget/Theme/default/components/molecules/navigation-header-mobile/navigation-header-mobile.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.navigation-header-mobile {
  position: relative;
  border-bottom: 0.0625rem dotted #dedede;
}
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/CustomerPage/Theme/default/components/molecules/order-detail-block/order-detail-block.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.order-detail-block {
  padding-bottom: 0.9375rem;
  margin-bottom: 0.9375rem;
}
@media only screen and (min-width: 48.125rem) {
  .order-detail-block {
    padding-bottom: 1.25rem;
    margin-bottom: 1.25rem;
    border-bottom: 0.0625rem dotted #dedede;
  }
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/CustomerPage/Theme/default/components/molecules/order-detail-header/order-detail-header.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.order-detail-header {
  list-style: none;
  margin-bottom: 1.25rem;
  padding-bottom: 0.3125rem;
  border-bottom: 0.0625rem dotted #dedede;
}
.order-detail-header__item {
  margin-bottom: 0.9375rem;
}
.order-detail-header__name {
  font: 700 0.9375rem "Circular", sans-serif;
  letter-spacing: -0.010625rem;
  padding-right: 0.625rem;
  max-width: 6.25rem;
  width: 100%;
  display: inline-block;
}
.order-detail-header__text {
  font-weight: 300;
  letter-spacing: -0.01125rem;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/CustomerPage/Theme/default/components/molecules/order-payment/order-payment.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.order-payment {
  margin-bottom: 1.25rem;
}
@media only screen and (min-width: 34.375rem) {
  .order-payment {
    margin-bottom: 0;
  }
}
.order-payment__item {
  font-weight: 300;
  line-height: 1.75rem;
  letter-spacing: -0.01125rem;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/CustomerPage/Theme/default/components/molecules/order-summary/order-summary.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.order-summary {
  margin: 0.625rem 0 1.875rem;
  border-bottom: 0.0625rem dotted #dedede;
}
@media only screen and (min-width: 48.125rem) {
  .order-summary {
    margin-bottom: 2.5rem;
  }
}
.order-summary__item {
  font: 400 0.875rem/1.125rem "Circular", sans-serif;
  margin: 1.5rem 0;
}
.order-summary__item--total {
  font-size: 0.9375rem;
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: 0.05rem;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/CustomerPage/Theme/default/components/molecules/shipment-information/shipment-information.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.shipment-information__content {
  font-weight: 300;
  letter-spacing: -0.01125rem;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/CustomerPage/Theme/default/components/molecules/title-box/title-box.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.title-box {
  border-bottom: 0.0625rem dotted #dedede;
  padding: 0.9375rem 0;
  margin: 0.9375rem 0;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/DiscountPromotionWidget/Theme/default/components/molecules/variant/variant.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.variant__label {
  font: normal 0.8125rem/1.31 "Circular", sans-serif;
  display: block;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/DiscountWidget/Theme/default/components/molecules/cart-discount-form/cart-discount-form.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.cart-discount-form--checkout {
  margin: 1.125rem 0;
  border-top: 0.0625rem dotted #dedede;
  border-bottom: 0.0625rem dotted #dedede;
}
.cart-discount-form--checkout .grid {
  margin: 0;
}
.cart-discount-form .label {
  display: none;
}
.cart-discount-form .form__field {
  padding: 0;
}
.cart-discount-form .form__action {
  margin: 0;
}
.cart-discount-form .input {
  border-radius: 0.125rem 0 0 0.125rem;
  height: 3rem;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/GiftCardWidget/Theme/default/components/molecules/gift-card-payment-summary/gift-card-payment-summary.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.gift-card-payment-summary__list-item {
  font: 400 0.875rem "Circular", sans-serif;
  margin: 1.5rem 0;
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/NewsletterWidget/Theme/default/components/molecules/subscription-form/subscription-form.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.subscription-form {
  padding-top: 0.6875rem;
}
.subscription-form .form-field {
  margin: 0;
}
.subscription-form .form-field__error::before {
  display: none;
}
.subscription-form .form-field__error-list, .subscription-form__success, .subscription-form__alert {
  padding-top: 0.625rem;
  font-size: 0.75rem;
  line-height: 1.2;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ProductBundleWidget/Theme/default/components/molecules/cart-bundle-list/cart-bundle-list.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.cart-bundle-list {
  margin-top: 2.75rem;
  position: relative;
}
.cart-bundle-list::after {
  content: "";
  display: block;
  width: 0.0625rem;
  height: 1.5625rem;
  border-left: 0.0625rem dotted #dedede;
  position: absolute;
  top: -2.1875rem;
  left: 3.75rem;
}
.cart-bundle-list__item {
  display: flex;
  align-items: center;
  margin: 1.25rem 0;
}
@media only screen and (max-width: 34.3125rem) {
  .cart-bundle-list__item {
    margin: 0.75rem 0;
  }
}
.cart-bundle-list__title {
  font: 500 0.9375rem "Circular", sans-serif;
  padding-left: 1.5rem;
}
.cart-bundle-list__quantity {
  color: #333;
  font-weight: normal;
  margin-left: 1rem;
  position: relative;
}
.cart-bundle-list__quantity::after {
  content: "";
  display: block;
  width: 0.1875rem;
  height: 0.1875rem;
  position: absolute;
  left: -0.625rem;
  background: #333;
  top: 0.5625rem;
  border-radius: 50%;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ProductGroupWidget/Theme/default/components/molecules/color-selector-pdp/color-selector-pdp.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.color-selector {
  cursor: default;
  position: relative;
  z-index: 350;
}
.color-selector__item {
  display: inline-block;
  width: 1rem;
  height: 1rem;
  border-radius: 100%;
  vertical-align: middle;
  position: relative;
}
.color-selector__item::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 0.875rem;
  height: 0.875rem;
  border: 0.125rem solid #ffffff;
  border-radius: 100%;
  visibility: hidden;
}
.color-selector__item::after {
  content: "";
  position: absolute;
  left: -0.0625rem;
  top: -0.0625rem;
  width: 1.125rem;
  height: 1.125rem;
  border-radius: 100%;
  border: 0.1875rem solid #ffffff;
}
.color-selector__item:not(:last-child) {
  margin-right: 0.25rem;
}
.color-selector__item:hover::after, .color-selector__item--active::after {
  visibility: hidden;
}
.color-selector__item:hover::before, .color-selector__item--active::before {
  visibility: visible;
}
.color-selector__item:hover .color-selector__tooltip {
  transform: scale(1);
}
.color-selector__tooltip {
  transition: all 250ms ease-in-out;
  transform: scale(0);
  transform-origin: bottom;
  position: absolute;
  top: -2.6875rem;
  left: -0.9375rem;
  background: #111;
  color: #ffffff;
  font: 300 1rem "Calibre", sans-serif;
  padding: 0.3125rem 0.6875rem 0.4375rem 0.625rem;
  white-space: nowrap;
  border-radius: 0.125rem;
}
.page-loading .color-selector__tooltip {
  transition: none;
}
.color-selector__tooltip::before {
  content: "";
  position: absolute;
  left: 1.0625rem;
  bottom: -0.25rem;
  border-radius: 0.125rem;
  background: #111;
  width: 0.625rem;
  height: 0.625rem;
  transform: rotate(45deg);
}

.color-selector-pdp {
  cursor: default;
  position: relative;
  z-index: 350;
}
.color-selector-pdp__item {
  display: inline-block;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 100%;
  vertical-align: middle;
  position: relative;
}
.color-selector-pdp__item::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 1.375rem;
  height: 1.375rem;
  border: 0.1875rem solid #ffffff;
  border-radius: 100%;
  visibility: hidden;
}
.color-selector-pdp__item::after {
  content: "";
  position: absolute;
  left: -0.0625rem;
  top: -0.0625rem;
  width: 1.625rem;
  height: 1.625rem;
  border-radius: 100%;
  border: 0.25rem solid #ffffff;
}
.color-selector-pdp__item:not(:last-child) {
  margin-right: 0.25rem;
}
.color-selector-pdp__item:hover::after, .color-selector-pdp__item--active::after {
  visibility: hidden;
}
.color-selector-pdp__item:hover::before, .color-selector-pdp__item--active::before {
  visibility: visible;
}
.color-selector-pdp__item:hover .color-selector-pdp__tooltip {
  transform: scale(1);
}
.color-selector-pdp__tooltip {
  transition: all 250ms ease-in-out;
  transform: scale(0);
  transform-origin: bottom;
  position: absolute;
  top: -2.6875rem;
  left: -0.9375rem;
  background: #111;
  color: #ffffff;
  font: 300 1rem "Calibre", sans-serif;
  padding: 0.3125rem 0.6875rem 0.4375rem 0.625rem;
  white-space: nowrap;
  border-radius: 0.125rem;
}
.page-loading .color-selector-pdp__tooltip {
  transition: none;
}
.color-selector-pdp__tooltip::before {
  content: "";
  position: absolute;
  left: 1.0625rem;
  bottom: -0.25rem;
  border-radius: 0.125rem;
  background: #111;
  width: 0.625rem;
  height: 0.625rem;
  transform: rotate(45deg);
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ProductImageWidget/Theme/default/components/molecules/image-gallery/image-gallery.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
/* Slider */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  user-select: none;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0;
}
.slick-list:focus {
  outline: none;
}
.slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
  transform: translate3d(0, 0, 0);
}

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.slick-track:before, .slick-track:after {
  content: "";
  display: table;
}
.slick-track:after {
  clear: both;
}
.slick-loading .slick-track {
  visibility: hidden;
}

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none;
}
[dir=rtl] .slick-slide {
  float: right;
}
.slick-slide img {
  display: block;
}
.slick-slide.slick-loading img {
  display: none;
}
.slick-slide.dragging img {
  pointer-events: none;
}
.slick-initialized .slick-slide {
  display: block;
}
.slick-loading .slick-slide {
  visibility: hidden;
}
.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
  display: none;
}

.image-gallery {
  position: relative;
}
.image-gallery__container {
  position: relative;
  z-index: 10;
  background: #ffffff;
  display: none;
}
.image-gallery__container::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(17, 17, 17, 0.05);
  z-index: 11;
}
.image-gallery__container--single-image {
  display: block;
  height: 17.5rem;
}
@media only screen and (min-width: 48.125rem) {
  .image-gallery__container {
    display: block;
    height: 30rem;
  }
}
@media only screen and (min-width: 60.625rem) {
  .image-gallery__container {
    height: 40.625rem;
  }
}
.image-gallery__item {
  transition: opacity 250ms ease-in-out;
  position: absolute;
  left: 0;
  top: 0;
  height: 17.5rem;
  padding: 0.9375rem 1rem;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  z-index: 9;
  background: #ffffff;
}
.page-loading .image-gallery__item {
  transition: none;
}
.image-gallery__item--active, .image-gallery__item--color-active {
  opacity: 1;
}
@media only screen and (min-width: 48.125rem) {
  .image-gallery__item {
    padding: 3.125rem 2.5rem;
    height: 30rem;
  }
}
@media only screen and (min-width: 60.625rem) {
  .image-gallery__item {
    padding: 6.25rem 4.375rem;
    height: 40.625rem;
  }
}
@media only screen and (min-width: 75.25rem) {
  .image-gallery__item {
    padding: 5rem 3.125rem;
    height: 38.125rem;
  }
}
.image-gallery__image {
  width: 100%;
  text-align: center;
  max-height: 15.625rem;
}
@media only screen and (min-width: 48.125rem) {
  .image-gallery__image {
    max-height: 100%;
  }
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ProductImageWidget/Theme/default/components/molecules/image-gallery-thumbnail/image-gallery-thumbnail.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.image-gallery-thumbnail {
  width: 100%;
}
@media only screen and (min-width: 48.125rem) {
  .image-gallery-thumbnail {
    position: absolute;
    top: 50%;
    left: 0.625rem;
    transform: translateY(-50%);
    z-index: 11;
    width: 2.25rem;
    max-height: 19.6875rem;
    overflow: hidden;
  }
  .image-gallery-thumbnail:not(.slick-initialized) .image-gallery-thumbnail__item {
    margin: 1rem 0;
  }
}
@media only screen and (min-width: 75.25rem) {
  .image-gallery-thumbnail {
    left: 1.875rem;
  }
}
.image-gallery-thumbnail__item {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 0.0625rem;
  position: relative;
  height: 17.5rem;
  background-color: #ffffff;
  margin: 0;
  cursor: default;
}
@media only screen and (max-width: 48.0625rem) {
  .image-gallery-thumbnail__item:not(:first-child) {
    display: none !important;
  }
}
@media only screen and (min-width: 48.125rem) {
  .image-gallery-thumbnail__item {
    width: 2.25rem;
    height: 2.25rem;
    border: 0.0625rem solid #dedede;
    margin: 0.5rem 0;
    cursor: pointer;
  }
}
.image-gallery-thumbnail__item--active {
  padding: 0;
}
@media only screen and (min-width: 48.125rem) {
  .image-gallery-thumbnail__item--active {
    border: 0.125rem solid #ffffff;
  }
}
.image-gallery-thumbnail__item--active .image-gallery-thumbnail__img {
  opacity: 1;
}
.image-gallery-thumbnail__item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(17, 17, 17, 0.05);
  z-index: 350;
}
.image-gallery-thumbnail__img {
  max-height: 15.625rem;
  opacity: 1;
  display: flex;
  align-items: center;
}
@media only screen and (min-width: 48.125rem) {
  .image-gallery-thumbnail__img {
    opacity: 0.25;
    max-height: 100%;
  }
}
.image-gallery-thumbnail__prev, .image-gallery-thumbnail__next {
  padding: 0 0 0.625rem;
  text-align: center;
  cursor: pointer;
  display: block;
}
.image-gallery-thumbnail__prev {
  padding: 0.625rem 0 0;
}
.image-gallery-thumbnail .slick-slide {
  border: none;
  height: auto;
}
.image-gallery-thumbnail .slick-dots {
  position: absolute;
  bottom: -2rem;
  width: 100%;
  display: flex;
  justify-content: center;
}
.image-gallery-thumbnail .slick-dots li {
  margin: 0 0.25rem;
  font-size: 0;
  border: 0.0625rem solid rgba(255, 255, 255, 0);
  padding: 0.0625rem;
  border-radius: 100%;
  position: relative;
}
.image-gallery-thumbnail .slick-dots li::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 0.25rem;
  height: 0.25rem;
  border-radius: 50%;
  background-color: #dedede;
}
.image-gallery-thumbnail .slick-dots button {
  width: 0.25rem;
  height: 0.25rem;
  font: 0/0 "Calibre", sans-serif;
  opacity: 0;
}
.image-gallery-thumbnail .slick-dots .slick-active {
  border-color: #ff4859;
}
.image-gallery-thumbnail .slick-dots .slick-active::before {
  background-color: rgba(255, 255, 255, 0);
}
.image-gallery-thumbnail .slick-disabled {
  cursor: default;
  pointer-events: none;
}
.image-gallery-thumbnail .slick-disabled .icon {
  color: #333;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ProductOptionWidget/Theme/default/components/molecules/product-options/product-options.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.product-options__item {
  margin-bottom: 0.5625rem;
  font-size: 0.9375rem;
}
@media only screen and (min-width: 48.125rem) {
  .product-options__item {
    margin-bottom: 1.125rem;
    font-size: 1rem;
  }
}
.product-options__item:not(:first-child) {
  border-top: 0.0625rem dotted #dedede;
  padding-top: 0.5625rem;
}
@media only screen and (min-width: 48.125rem) {
  .product-options__item:not(:first-child) {
    padding-top: 1.125rem;
  }
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ProductReviewWidget/Theme/default/components/molecules/review-average-display/review-average-display.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.review-average-display {
  display: flex;
  align-items: center;
  margin-bottom: 1.6875rem;
}
.review-average-display__title {
  font: 400 1.125rem "Calibre", sans-serif;
  color: #111;
  margin-right: 0.75rem;
}
@media only screen and (min-width: 34.375rem) {
  .review-average-display__title {
    font-size: 1.3125rem;
  }
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ProductReviewWidget/Theme/default/components/molecules/review-distribution-display/review-distribution-display.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.review-distribution-display {
  margin-bottom: 2.5rem;
}
@media only screen and (min-width: 34.375rem) {
  .review-distribution-display {
    margin-bottom: 5rem;
  }
}
.review-distribution-display__cell {
  padding-bottom: 0.75rem;
  font: 300 0.875rem/1.25rem "Calibre", sans-serif;
  color: #555;
}
.review-distribution-display__cell:first-child {
  color: #111;
  font-size: 1rem;
}
.review-distribution-display__progress {
  margin: 0 1.0625rem 0 1.3125rem;
  width: 6.4375rem;
  height: 1.25rem;
  border-radius: 0.625rem;
  background-color: #f5f5f5;
  box-shadow: 0.03125rem 0.03125rem 0.03125rem 0 rgba(17, 17, 17, 0.24);
  overflow: hidden;
}
.review-distribution-display__progress-status {
  position: relative;
  border-radius: 0.625rem;
  height: 1.25rem;
  background-color: #ffbf1c;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ProductReviewWidget/Theme/default/components/molecules/review/review.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.review {
  border-bottom: 0.0625rem dotted #dedede;
  padding: 1.25rem 0;
  break-inside: avoid;
}
@media only screen and (min-width: 34.375rem) {
  .review {
    padding: 2rem 0;
  }
}
.review__author-date {
  font: 400 0.8125rem/1.4375rem "Circular", sans-serif;
  margin: 0 0 1rem;
  color: #111;
}
@media only screen and (min-width: 34.375rem) {
  .review__author-date {
    font-size: 0.875rem;
    margin: 0 0 0.75rem;
  }
}
.review__description {
  font: 300 0.9375rem/1.375rem "Calibre", sans-serif;
}
@media only screen and (min-width: 34.375rem) {
  .review__description {
    font-size: 1rem;
  }
}
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ProductReviewWidget/Theme/default/components/organisms/review-summary/review-summary.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.review-summary__add-review-mobile {
  padding-bottom: 1.875rem;
}
.review-summary__reviews {
  column-count: 1;
  column-gap: 1.875rem;
  margin: -2rem 0 4.375rem;
}
@media only screen and (min-width: 34.375rem) {
  .review-summary__reviews {
    column-count: 2;
  }
}
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ProductSetListPage/Theme/default/components/organisms/set-list/set-list.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.set-list {
  margin-bottom: 3rem;
}
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/ProductSetWidget/Theme/default/components/molecules/product-set-slider/product-set-slider.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
@media only screen and (max-width: 34.3125rem) {
  .product-set-slider--multiple .slick-slide {
    padding-right: 0.625rem;
  }
}
@media only screen and (min-width: 48.125rem) {
  .product-set-slider--single .slick-slide {
    padding-right: 1.875rem;
  }
}
.product-set-slider--single .thumbnail {
  height: 15rem;
}
@media only screen and (min-width: 34.375rem) {
  .product-set-slider--single .thumbnail {
    height: 23rem;
  }
}
.product-set-slider--single .thumbnail:not(:first-child) {
  display: none;
}
.product-set-slider--hide-prev-btn {
  margin-bottom: 2rem;
}
@media only screen and (min-width: 34.375rem) {
  .product-set-slider--hide-prev-btn:hover .slick-prev {
    pointer-events: all;
    visibility: visible;
    opacity: 1;
  }
}
@media only screen and (min-width: 34.375rem) {
  .product-set-slider--hide-prev-btn .slick-prev {
    transition: visibility 250ms ease-in-out, opacity 250ms ease-in-out;
    pointer-events: none;
    visibility: hidden;
    opacity: 0;
  }
  .page-loading .product-set-slider--hide-prev-btn .slick-prev {
    transition: none;
  }
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/SalesConfigurableBundleWidget/Theme/default/components/molecules/ordered-configured-bundle-product-secondary/ordered-configured-bundle-product-secondary.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.ordered-configured-bundle-product-secondary {
  padding: 0.625rem 0.625rem 1.25rem 0.625rem;
}
@media only screen and (min-width: 34.375rem) {
  .ordered-configured-bundle-product-secondary {
    padding-right: 0.9375rem;
  }
}
.ordered-configured-bundle-product-secondary__content {
  padding-top: 0.625rem;
}
@media only screen and (min-width: 34.375rem) {
  .ordered-configured-bundle-product-secondary__content {
    padding-left: 1rem;
    padding-top: 0;
  }
}
.ordered-configured-bundle-product-secondary__thumbnail-wrapper {
  width: 7.5rem;
}
.ordered-configured-bundle-product-secondary__info {
  margin-bottom: 0.625rem;
}
@media only screen and (min-width: 60.625rem) {
  .ordered-configured-bundle-product-secondary__info {
    margin-bottom: 0;
  }
}
.ordered-configured-bundle-product-secondary__title {
  display: block;
  font: 500 0.9375rem "Circular", sans-serif;
}
.ordered-configured-bundle-product-secondary__sku, .ordered-configured-bundle-product-secondary__quantity {
  font: 300 16px "Calibre", sans-serif;
  color: #555;
}
.ordered-configured-bundle-product-secondary__status {
  margin-bottom: 0.3125rem;
}
@media only screen and (min-width: 60.625rem) {
  .ordered-configured-bundle-product-secondary__status {
    margin-bottom: 0;
  }
}
@media only screen and (min-width: 60.625rem) {
  .ordered-configured-bundle-product-secondary__status, .ordered-configured-bundle-product-secondary__price, .ordered-configured-bundle-product-secondary__quantity {
    padding: 0 0.3125rem;
    text-align: center;
  }
}
@media only screen and (min-width: 60.625rem) {
  .ordered-configured-bundle-product-secondary__total-price {
    text-align: right;
  }
}
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/SalesProductBundleWidget/Theme/default/components/molecules/ordered-bundle-item/ordered-bundle-item.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.ordered-bundle-item {
  margin-bottom: 0.9375rem;
}
.ordered-bundle-item__image {
  width: 4.375rem;
  height: 4.375rem;
}
.ordered-bundle-item__content {
  padding-left: 1.25rem;
}
.ordered-bundle-item__name {
  font: 500 1rem/1.125rem "Circular", sans-serif;
}
.ordered-bundle-item__quantity {
  color: #555;
  font: 300 1rem/1.125rem "Calibre", sans-serif;
  letter-spacing: 0.0125rem;
}
@media only screen and (min-width: 60.625rem) {
  .ordered-bundle-item__status, .ordered-bundle-item__quantity {
    padding: 0 0.3125rem;
    text-align: center;
  }
}
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/SalesProductBundleWidget/Theme/default/components/molecules/ordered-product-bundle/ordered-product-bundle.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.ordered-product-bundle {
  border-bottom: 0.0625rem dotted #dedede;
  padding-bottom: 1.125rem;
  margin-bottom: 1.125rem;
}
.ordered-product-bundle__image {
  width: 7.5rem;
}
.ordered-product-bundle__content {
  padding-top: 0.9375rem;
  width: 100%;
}
@media only screen and (min-width: 34.375rem) {
  .ordered-product-bundle__content {
    padding-left: 1.25rem;
    padding-top: 0;
    width: auto;
    flex-grow: 1;
    flex-basis: 0;
  }
}
.ordered-product-bundle__info {
  margin-bottom: 0.625rem;
}
@media only screen and (min-width: 60.625rem) {
  .ordered-product-bundle__info {
    margin-bottom: 0;
  }
}
.ordered-product-bundle__name {
  font: 500 1rem/1.125rem "Circular", sans-serif;
}
.ordered-product-bundle__sku, .ordered-product-bundle__quantity {
  color: #555;
  font: 300 1rem/1.125rem "Calibre", sans-serif;
  letter-spacing: 0.0125rem;
}
@media only screen and (min-width: 60.625rem) {
  .ordered-product-bundle__price, .ordered-product-bundle__quantity {
    padding: 0 0.3125rem;
    text-align: center;
  }
}
@media only screen and (min-width: 60.625rem) {
  .ordered-product-bundle__total-price {
    text-align: right;
  }
}
.ordered-product-bundle__items {
  border-top: 0.0625rem dotted #dedede;
  padding-top: 0.9375rem;
  margin-top: 0.9375rem;
  width: 100%;
}
.ordered-product-bundle--with-options {
  border-bottom: none;
  padding-bottom: 0.625rem;
  margin-bottom: 0;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/SalesReturnPage/Theme/default/components/molecules/return-header-information/return-header-information.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.return-header-information {
  list-style: none;
  padding-bottom: 0.3125rem;
  border-bottom: 0.0625rem dotted #dedede;
}
.return-header-information__item {
  margin-bottom: 0.9375rem;
}
.return-header-information__name {
  font: 700 0.9375rem "Circular", sans-serif;
  letter-spacing: -0.01125rem;
  padding-right: 0.625rem;
  width: 6.25rem;
  display: inline-block;
  vertical-align: baseline;
}
.return-header-information__text {
  font-weight: 300;
  letter-spacing: -0.01125rem;
}
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/SalesReturnPage/Theme/default/components/molecules/return-list-title/return-list-title.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.return-list-title {
  border-bottom: 0.0625rem dotted #dedede;
  padding: 0.9375rem 0;
  margin: 0.9375rem 0;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/SalesReturnPage/Theme/default/components/molecules/return-overview/return-overview.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.return-overview__title-block {
  padding-bottom: 0.9375rem;
  margin-bottom: 0.9375rem;
}
@media only screen and (min-width: 48.125rem) {
  .return-overview__title-block {
    padding-bottom: 1.25rem;
    margin-bottom: 1.25rem;
    border-bottom: 0.0625rem dotted #dedede;
  }
}
.return-overview__overview-info {
  list-style: none;
  margin-bottom: 1.25rem;
  padding-bottom: 0.3125rem;
  border-bottom: 0.0625rem dotted #dedede;
}
.return-overview__item {
  margin-bottom: 0.9375rem;
}
.return-overview__name {
  font: 700 0.9375rem "Circular", sans-serif;
  letter-spacing: -0.010625rem;
  padding-right: 0.625rem;
  width: 6.25rem;
  display: inline-block;
  vertical-align: baseline;
}
.return-overview__text {
  font-weight: 300;
  letter-spacing: -0.01125rem;
}
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/SalesReturnPage/Theme/default/components/molecules/return-product-item/return-product-item.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.return-product-item {
  border-bottom: 0.0625rem dotted #dedede;
  padding-bottom: 1.125rem;
  margin-bottom: 1.125rem;
}
.return-product-item__image {
  width: 7.5rem;
}
.return-product-item__content {
  padding-top: 0.9375rem;
  width: 100%;
}
@media only screen and (min-width: 34.375rem) {
  .return-product-item__content {
    padding-left: 1.25rem;
    padding-top: 0;
    width: auto;
    flex-grow: 1;
    flex-basis: 0;
  }
}
.return-product-item__info {
  margin-bottom: 0.625rem;
}
@media only screen and (min-width: 60.625rem) {
  .return-product-item__info {
    margin-bottom: 0;
  }
}
.return-product-item__name {
  font: 500 1rem/1.125rem "Circular", sans-serif;
}
.return-product-item__sku, .return-product-item__quantity {
  color: #555;
  font: 300 1rem/1.125rem "Calibre", sans-serif;
  letter-spacing: 0.0125rem;
}
.return-product-item__status {
  margin-bottom: 0.3125rem;
}
@media only screen and (min-width: 60.625rem) {
  .return-product-item__status {
    margin-bottom: 0;
  }
}
@media only screen and (min-width: 60.625rem) {
  .return-product-item__status, .return-product-item__price, .return-product-item__quantity {
    padding: 0 0.3125rem;
    text-align: center;
  }
}
@media only screen and (min-width: 60.625rem) {
  .return-product-item__total-price {
    text-align: right;
  }
}
.return-product-item--with-options {
  border-bottom: none;
  padding-bottom: 0.625rem;
  margin-bottom: 0;
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/SalesReturnPage/Theme/default/components/molecules/return-title-block/return-title-block.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.return-title-block {
  padding-bottom: 0.9375rem;
  margin-bottom: 0.9375rem;
}
@media only screen and (min-width: 48.125rem) {
  .return-title-block {
    padding-bottom: 1.25rem;
    margin-bottom: 1.25rem;
    border-bottom: 0.0625rem dotted #dedede;
  }
}
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/SalesReturnPage/Theme/default/components/molecules/return-total/return-total.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
.return-total {
  margin: 1.25rem 0 1.875rem;
  border-bottom: 0.0625rem dotted #dedede;
}
@media only screen and (min-width: 48.125rem) {
  .return-total {
    margin-bottom: 2.5rem;
  }
}
.return-total__item {
  font: 400 0.875rem/1.125rem "Circular", sans-serif;
  margin: 1.5rem 0;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/util.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 z-index value for the skip to content link context.
 */
/**
 * Defines z-index value for layer under main content.
 */
/**
 * 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.
 */
/**
 * Forces element invisibility with accessibility support.
 */
/**
 * Forces element visibility with accessibility support.
 */
/**
 * 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.
 */
/**
 * 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]
 */
/**
 * @deprecated Use agent-widget-agent-navigation mixin instead.
 */
/**
 * @deprecated Use agent-widget-agent-control-bar mixin instead.
 */
.summary-overview__grand-total-price {
  font-size: 1.1rem;
  line-height: 1.4;
}

/**
 * @deprecated Use cms-search-page-sort 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-review-widget-rating-selector mixin instead.
 */
/**
 * @deprecated Use product-search-widget-product-quick-add-form mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle mixin instead.
 */
/**
 * @deprecated Use configurable-bundle-widget-order-configured-bundle-product mixin instead.
 */
.collapsible-list__button {
  background-color: rgba(255, 255, 255, 0);
  color: #00afb4;
  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.
 */
/**
 * Provides global class names for spacings.
 */
/**
 * Provides global class names for text styling.
 */
/**
 * Provides class name for text styling with color property specified by parameters.
 * @param {String} $action Sets class name postfix.
 * @param {Color} $setting-color-action Sets color property.
 * @content Extendable mixin.
 */
/**
 * Provides global class names for the elements' float alignment.
 */
/**
 * Provides global class names for display behavior with additional responsive modifiers.
 */
.text-small {
  font-size: 0.875rem;
}

.text-big {
  font-size: 1.25rem;
}

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

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

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

.text-alt {
  color: #ff4859;
}

.text-secondary {
  color: #595959;
}

.text-break {
  word-break: break-word;
}

.text-info {
  color: #f0ede6;
}

.text-warning {
  color: #f37849;
}

.text-success {
  color: #4ac38e;
}

.text-alert {
  color: #cb3d49;
}

.text-middle {
  vertical-align: middle;
}

.text-secondary {
  color: #333;
}

.spacing {
  margin: 0.5rem;
}
.spacing--biggest {
  margin: 2rem;
}
.spacing--bigger {
  margin: 1.5rem;
}
.spacing--big {
  margin: 1rem;
}
.spacing--small {
  margin: 0.25rem;
}
.spacing--reset {
  margin: 0;
}

.spacing--inner {
  margin: 0;
  padding: 0.5rem;
}
.spacing--inner.spacing--biggest {
  margin: 0;
  padding: 2rem;
}

.spacing--inner.spacing--bigger {
  margin: 0;
  padding: 1.5rem;
}

.spacing--inner.spacing--big {
  margin: 0;
  padding: 1rem;
}

.spacing--inner.spacing--small {
  margin: 0;
  padding: 0.25rem;
}

.spacing--inner.spacing--reset {
  margin: 0;
  padding: 0;
}

.spacing-top {
  margin-top: 0.5rem;
}
.spacing-top--biggest {
  margin-top: 2rem;
}
.spacing-top--bigger {
  margin-top: 1.5rem;
}
.spacing-top--big {
  margin-top: 1rem;
}
.spacing-top--small {
  margin-top: 0.25rem;
}
.spacing-top--reset {
  margin-top: 0;
}

.spacing-top--inner {
  margin-top: 0;
  padding-top: 0.5rem;
}
.spacing-top--inner.spacing-top--biggest {
  margin-top: 0;
  padding-top: 2rem;
}

.spacing-top--inner.spacing-top--bigger {
  margin-top: 0;
  padding-top: 1.5rem;
}

.spacing-top--inner.spacing-top--big {
  margin-top: 0;
  padding-top: 1rem;
}

.spacing-top--inner.spacing-top--small {
  margin-top: 0;
  padding-top: 0.25rem;
}

.spacing-top--inner.spacing-top--reset {
  margin-top: 0;
  padding-top: 0;
}

.spacing-bottom {
  margin-bottom: 0.5rem;
}
.spacing-bottom--biggest {
  margin-bottom: 2rem;
}
.spacing-bottom--bigger {
  margin-bottom: 1.5rem;
}
.spacing-bottom--big {
  margin-bottom: 1rem;
}
.spacing-bottom--small {
  margin-bottom: 0.25rem;
}
.spacing-bottom--reset {
  margin-bottom: 0;
}

.spacing-bottom--inner {
  margin-bottom: 0;
  padding-bottom: 0.5rem;
}
.spacing-bottom--inner.spacing-bottom--biggest {
  margin-bottom: 0;
  padding-bottom: 2rem;
}

.spacing-bottom--inner.spacing-bottom--bigger {
  margin-bottom: 0;
  padding-bottom: 1.5rem;
}

.spacing-bottom--inner.spacing-bottom--big {
  margin-bottom: 0;
  padding-bottom: 1rem;
}

.spacing-bottom--inner.spacing-bottom--small {
  margin-bottom: 0;
  padding-bottom: 0.25rem;
}

.spacing-bottom--inner.spacing-bottom--reset {
  margin-bottom: 0;
  padding-bottom: 0;
}

.spacing-left {
  margin-left: 0.5rem;
}
.spacing-left--biggest {
  margin-left: 2rem;
}
.spacing-left--bigger {
  margin-left: 1.5rem;
}
.spacing-left--big {
  margin-left: 1rem;
}
.spacing-left--small {
  margin-left: 0.25rem;
}
.spacing-left--reset {
  margin-left: 0;
}

.spacing-left--inner {
  margin-left: 0;
  padding-left: 0.5rem;
}
.spacing-left--inner.spacing-left--biggest {
  margin-left: 0;
  padding-left: 2rem;
}

.spacing-left--inner.spacing-left--bigger {
  margin-left: 0;
  padding-left: 1.5rem;
}

.spacing-left--inner.spacing-left--big {
  margin-left: 0;
  padding-left: 1rem;
}

.spacing-left--inner.spacing-left--small {
  margin-left: 0;
  padding-left: 0.25rem;
}

.spacing-left--inner.spacing-left--reset {
  margin-left: 0;
  padding-left: 0;
}

.spacing-right {
  margin-right: 0.5rem;
}
.spacing-right--biggest {
  margin-right: 2rem;
}
.spacing-right--bigger {
  margin-right: 1.5rem;
}
.spacing-right--big {
  margin-right: 1rem;
}
.spacing-right--small {
  margin-right: 0.25rem;
}
.spacing-right--reset {
  margin-right: 0;
}

.spacing-right--inner {
  margin-right: 0;
  padding-right: 0.5rem;
}
.spacing-right--inner.spacing-right--biggest {
  margin-right: 0;
  padding-right: 2rem;
}

.spacing-right--inner.spacing-right--bigger {
  margin-right: 0;
  padding-right: 1.5rem;
}

.spacing-right--inner.spacing-right--big {
  margin-right: 0;
  padding-right: 1rem;
}

.spacing-right--inner.spacing-right--small {
  margin-right: 0;
  padding-right: 0.25rem;
}

.spacing-right--inner.spacing-right--reset {
  margin-right: 0;
  padding-right: 0;
}

.spacing-x {
  margin-left: 0.5rem;
  margin-right: 0.5rem;
}
.spacing-x--biggest {
  margin-left: 2rem;
  margin-right: 2rem;
}
.spacing-x--bigger {
  margin-left: 1.5rem;
  margin-right: 1.5rem;
}
.spacing-x--big {
  margin-left: 1rem;
  margin-right: 1rem;
}
.spacing-x--small {
  margin-left: 0.25rem;
  margin-right: 0.25rem;
}
.spacing-x--reset {
  margin-left: 0;
  margin-right: 0;
}

.spacing-x--inner {
  margin-left: 0;
  padding-left: 0.5rem;
  margin-right: 0;
  padding-right: 0.5rem;
}
.spacing-x--inner.spacing-x--biggest {
  margin-left: 0;
  padding-left: 2rem;
  margin-right: 0;
  padding-right: 2rem;
}

.spacing-x--inner.spacing-x--bigger {
  margin-left: 0;
  padding-left: 1.5rem;
  margin-right: 0;
  padding-right: 1.5rem;
}

.spacing-x--inner.spacing-x--big {
  margin-left: 0;
  padding-left: 1rem;
  margin-right: 0;
  padding-right: 1rem;
}

.spacing-x--inner.spacing-x--small {
  margin-left: 0;
  padding-left: 0.25rem;
  margin-right: 0;
  padding-right: 0.25rem;
}

.spacing-x--inner.spacing-x--reset {
  margin-left: 0;
  padding-left: 0;
  margin-right: 0;
  padding-right: 0;
}

.spacing-y {
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}
.spacing-y--biggest {
  margin-top: 2rem;
  margin-bottom: 2rem;
}
.spacing-y--bigger {
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}
.spacing-y--big {
  margin-top: 1rem;
  margin-bottom: 1rem;
}
.spacing-y--small {
  margin-top: 0.25rem;
  margin-bottom: 0.25rem;
}
.spacing-y--reset {
  margin-top: 0;
  margin-bottom: 0;
}

.spacing-y--inner {
  margin-top: 0;
  padding-top: 0.5rem;
  margin-bottom: 0;
  padding-bottom: 0.5rem;
}
.spacing-y--inner.spacing-y--biggest {
  margin-top: 0;
  padding-top: 2rem;
  margin-bottom: 0;
  padding-bottom: 2rem;
}

.spacing-y--inner.spacing-y--bigger {
  margin-top: 0;
  padding-top: 1.5rem;
  margin-bottom: 0;
  padding-bottom: 1.5rem;
}

.spacing-y--inner.spacing-y--big {
  margin-top: 0;
  padding-top: 1rem;
  margin-bottom: 0;
  padding-bottom: 1rem;
}

.spacing-y--inner.spacing-y--small {
  margin-top: 0;
  padding-top: 0.25rem;
  margin-bottom: 0;
  padding-bottom: 0.25rem;
}

.spacing-y--inner.spacing-y--reset {
  margin-top: 0;
  padding-top: 0;
  margin-bottom: 0;
  padding-bottom: 0;
}

.clear::after {
  content: "";
  display: table;
  clear: both;
}

.float-left {
  float: left;
}

.float-right {
  float: right;
}

.float-none {
  float: none;
}

.is-hidden {
  display: none;
}
@media only screen and (min-width: 0) and (max-width: 549px) {
  .is-hidden-sm-only {
    display: none;
  }
}
@media only screen and (min-width: 0) and (max-width: 769px) {
  .is-hidden-sm-md {
    display: none;
  }
}
@media only screen and (min-width: 0) and (max-width: 969px) {
  .is-hidden-sm-lg {
    display: none;
  }
}
@media only screen and (min-width: 0) {
  .is-hidden-sm-xl {
    display: none;
  }
}
@media only screen and (min-width: 550px) and (max-width: 769px) {
  .is-hidden-md-only {
    display: none;
  }
}
@media only screen and (min-width: 550px) and (max-width: 969px) {
  .is-hidden-md-lg {
    display: none;
  }
}
@media only screen and (min-width: 550px) {
  .is-hidden-md-xl {
    display: none;
  }
}
@media only screen and (min-width: 770px) and (max-width: 969px) {
  .is-hidden-lg-only {
    display: none;
  }
}
@media only screen and (min-width: 770px) {
  .is-hidden-lg-xl {
    display: none;
  }
}
@media only screen and (min-width: 970px) {
  .is-hidden-xl-only {
    display: none;
  }
}

.is-visible {
  pointer-events: all;
  visibility: visible;
  opacity: 1;
}

.is-invisible {
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
}

.is-scrollable {
  overflow: auto;
}

.is-not-scrollable {
  overflow: hidden;
}

.is-scrollable-x {
  overflow-x: auto;
}

.is-not-scrollable-x {
  overflow-x: hidden;
}

.is-scrollable-y {
  overflow-y: auto;
}

.is-not-scrollable-y {
  overflow-y: hidden;
}

.is-position-relative {
  position: relative;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9jc3MveXZlc19kZWZhdWx0Lm5vbi1jcml0aWNhbC5jc3MiLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQzVEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQVdBOztFQUFBO0FBVUE7O0VBQUE7QUNoQ0E7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNBQTs7Ozs7RUFBQTtBQ3NDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDbkJqaUVnQjtFbUJraUVoQixjQzFrRVM7RUQya0VUO0FBN3pEWjtBQSt6RFk7RUFDSTtBQTd6RGhCO0FBZzBEWTtFQUNJO0FBOXpEaEI7QUFrMERnQjtFQUNJO0FBaDBEcEI7QUFxMERRO0VBQ0k7QUFuMERaOztBQWdwRkE7QUFpQ0E7O0VBQUE7QUF5ZUE7O0VBQUE7QUFoN0dRO0VBQ0k7RUFDQTtBQWdTWjtBQTdSUTtFQUNJO0VBQ0E7QUErUlo7QUE1UlE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQThSWixDOzs7O0FuQjdUQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0FHc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0NyQmppRWdCO0VxQmtpRWhCLGNEMWtFUztFQzJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQXFDUTtFQUNJO0VBQ0E7QUFyckdaO0FBdXJHWTtFQUNJLGNENzlHSTtFQzg5R0o7QUFyckdoQixDOzs7O0FyQnZUQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0FJc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0N0QmppRWdCO0VzQmtpRWhCLGNGMWtFUztFRTJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQW9DSTtFQUNJO0VBQ0E7RUFDQTtBQXByR1I7QVJwUkk7RVFxOEdBO0lBTVE7RUFuckdWO0FBQ0Y7QUFxckdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUFuckdaO0FSL1JJO0VRODhHSTtJQU9RO0VBbHJHZDtBQUNGO0FBcXJHUTtFQUNJO0VBQ0E7RUFDQTtBQW5yR1o7QVJ6U0k7RVF5OUdJO0lBTVE7RUFsckdkO0FBQ0Y7QVI5U0k7RVF5OUdJO0lBVVE7RUFqckdkO0FBQ0Y7QUFvckdRO0VBQ0k7QUFsckdaO0FBb3JHWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBbHJHaEI7QVI1VEk7RVEwK0dRO0lBT1E7SUFDQTtJQUNBO0lBQ0E7RUFqckdsQjtBQUNGO0FScFVJO0VRMCtHUTtJQWNRO0VBaHJHbEI7QUFDRjtBUnpVSTtFUTArR1E7SUFrQlE7RUEvcUdsQjtBQUNGO0FBbXJHUTtFWnhnSEo7RVkwZ0hRO0VBQ0E7QUFqckdaO0FBb3JHUTtFQUNJO0VBQ0E7QUFsckdaO0FBb3JHWTtFQUNJO0VBQ0E7QUFsckdoQjtBUjNWSTtFUTJnSFE7SUFLUTtJQUNBO0lBQ0E7RUFqckdsQjtBQUNGO0FSbFdJO0VRMmdIUTtJQVdRO0VBaHJHbEI7QUFDRixDOzs7O0F0QnZZQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0FLc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0N2QmppRWdCO0V1QmtpRWhCLGNIMWtFUztFRzJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQWprQkk7RUFDSTtFQUNBO0VBQ0E7QUEva0ZSO0FBaWxGUTtFYnQzRko7RWF3M0ZRLFdIOTNGVTtBRytTdEI7QUFrbEZRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQWhsRlo7QUFrbEZZO0VBQ0k7QUFobEZoQjtBQW9sRlE7RUFDSTtFQUNBO0FBbGxGWjtBVHRTSTtFU2cyRkE7SUF4eUZRO0lBQ0E7RUFrUFY7QUFDRjtBQWhQUTtFQUNJO0VBQ0E7QUFrUFo7QUFoUFk7RUFDSTtBQWtQaEI7QUEvT1k7RUFDSTtBQWlQaEI7QUE3T1E7RUFDSTtBQStPWixDOzs7O0F2QnpWQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0FNc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0N4QmppRWdCO0V3QmtpRWhCLGNKMWtFUztFSTJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQTd1R1E7RUFDSTtBQTZGWixDOzs7O0F4QmxUQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0FPc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0N6QmppRWdCO0V5QmtpRWhCLGNMMWtFUztFSzJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQTl1RUk7RVBuc0NBLDRFQUZpQjtFT3VzQ2I7RUFDQTtFQUNBLHlCTDFzQ2E7RUsyc0NiO0VBQ0E7RUFDQSxjekI3c0NjO0V5QjhzQ2Q7RUFDQTtFUDVzQ0osaUNBRmlCO0VPK1BqQixnQkxwUWtCO0VLcVFsQixjekJqUWtCO0V5QmtRbEIsb0N6QjFOd0I7RXlCdTdHcEI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQTdxR1I7QVBqVEk7RUFDSTtBT21UUjtBQXc1QlE7RUFFSTtFQUNBO0FBdjVCWjtBQTA1QlE7RUFDSSx5Qkx4dENTO0VLeXRDVDtFQUNBO0FBeDVCWjtBQTI1QlE7RUFDSTtFQUNBLHlCekIvdENVO0V5Qmd1Q1Y7RUFDQSxjTGp1Q1M7QUt3VXJCO0FBMjVCWTtFQUVJO0FBMTVCaEI7QUE2NUJZO0VBQ0k7RUFDQTtBQTM1QmhCO0FBKzVCUTtFQUNJO0FBNzVCWjtBQXU3Qkk7RUFDSSx5QkwzdkNnQjtBS3NVeEI7QUF1N0JRO0VBRUk7QUF0N0JaO0FBeTdCUTtFQUNJLHlCTG53Q1k7RUtvd0NaO0FBdjdCWjtBQTI3Qkk7RUFDSSx5QnpCeHhDYztFeUJ5eENkLHFCTDF3Q2dCO0VLMndDaEIsY0wzd0NnQjtBS2tWeEI7QUEyN0JRO0VBRUk7QUExN0JaO0FBNjdCUTtFQUNJO0VBQ0E7QUEzN0JaO0FBaTZCSTtFQUNJLHlCTDN2Q2dCO0FLNFZ4QjtBQWk2QlE7RUFFSTtBQWg2Qlo7QUFtNkJRO0VBQ0kseUJMbndDWTtFS293Q1o7QUFqNkJaO0FBcTZCSTtFQUNJLHlCekJ4eENjO0V5Qnl4Q2QscUJMMXdDZ0I7RUsyd0NoQixjTDN3Q2dCO0FLd1d4QjtBQXE2QlE7RUFFSTtBQXA2Qlo7QUF1NkJRO0VBQ0k7RUFDQTtBQXI2Qlo7QUEyNEJJO0VBQ0kseUJMM3ZDZ0I7QUtrWHhCO0FBMjRCUTtFQUVJO0FBMTRCWjtBQTY0QlE7RUFDSSx5Qkxud0NZO0VLb3dDWjtBQTM0Qlo7QUErNEJJO0VBQ0kseUJ6Qnh4Q2M7RXlCeXhDZCxxQkwxd0NnQjtFSzJ3Q2hCLGNMM3dDZ0I7QUs4WHhCO0FBKzRCUTtFQUVJO0FBOTRCWjtBQWk1QlE7RUFDSTtFQUNBO0FBLzRCWjtBQXEzQkk7RUFDSSx5QkwzdkNnQjtBS3dZeEI7QUFxM0JRO0VBRUk7QUFwM0JaO0FBdTNCUTtFQUNJLHlCTG53Q1k7RUtvd0NaO0FBcjNCWjtBQXkzQkk7RUFDSSx5QnpCeHhDYztFeUJ5eENkLHFCTDF3Q2dCO0VLMndDaEIsY0wzd0NnQjtBS29aeEI7QUF5M0JRO0VBRUk7QUF4M0JaO0FBMjNCUTtFQUNJO0VBQ0E7QUF6M0JaO0FBNDBCUTtFQUdJLHlCekJwdkNVO0V5QnF2Q1YscUJ6QnJ2Q1U7RXlCc3ZDVjtFQUNBLGN6Qjl0Q1c7QXlCa1p2QjtBQTgwQlk7RUFFSSx5QnpCM3ZDTTtBeUI4YXRCO0FQOWFJO0VBQ0k7QU9nYlI7QUEraUdRO0VBcnVHSixtQkwvUGdCO0VLZ1FoQixjekJqUWtCO0V5QmtRbEIsb0N6QjFOd0I7QXlCbVo1QjtBQW9qR1E7RUEvdUdKLGtDekJ4TndCO0V5QnlOeEIsNkJMclBvQjtFS3NQcEIsb0N6QjFOd0I7RXlCNjhHaEI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBcGpHWjtBQXNqR1k7RUE1dkdSLG1CTDFRbUI7RUsyUW5CLFdMclFrQjtFS3NRbEIsb0N6QjFOd0I7RXlCNDlHWjtBQXhqR2hCO0FBNGpHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBLDZCTGhnSFk7QUtzY3hCO0FBNGpHWTtFQUVJO0VBQ0EsNkJMcmdIUTtFS3NnSFI7QUEzakdoQjtBQStqR1E7RUF0eEdKLG1CTDFRbUI7RUsyUW5CLFdMclFrQjtFS3NRbEIsb0N6QjFOd0I7QXlCb2I1QjtBQWtrR1E7RUE5eEdKLGtDTHpQb0I7RUswUHBCLGNMalFpQjtFS2tRakIsb0N6QjFOd0I7QXlCeWI1QjtBQXFrR1E7RUF0eUdKLGdCTHBRa0I7RUtxUWxCLGN6QmpRa0I7RXlCa1FsQixvQ3pCMU53QjtBeUI4YjVCO0FBdWtHWTtFQTd5R1IsbUJML1BnQjtFS2dRaEIsY3pCalFrQjtFeUJrUWxCLG9DekIxTndCO0F5Qm1jNUI7QUEya0dRO0VBdHpHSixtQkx4UW1CO0VLeVFuQixjekJqUWtCO0V5QmtRbEIsb0N6QjFOd0I7QXlCd2M1QjtBQTZrR1k7RUE3ekdSLG1CTHhRbUI7RUt5UW5CLGN6QmpRa0I7RXlCa1FsQixvQ3pCMU53QjtBeUI2YzVCLEM7Ozs7QXpCbGdCQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0FRc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0MxQmppRWdCO0UwQmtpRWhCLGNOMWtFUztFTTJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQTVxR0k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUF5c0dKO0VBQ0E7QUE3cUdKLEM7Ozs7QTFCelRBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QVNzQ0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUF3R1E7RUFDSTtFQUNBO0FBc0VaOztBQW5EQTs7RUFBQTtBQXlTQTs7RUFBQTtBQXdFQTs7RUFBQTtBQXlDQTs7RUFBQTtBQTJQQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTZDQTs7RUFBQTtBQXNDQTs7RUFBQTtBQWlqQ1E7RUFDSSx3QzNCamlFZ0I7RTJCa2lFaEIsY1Axa0VTO0VPMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FBamtCSTtFQUNJO0VBQ0E7RUFDQTtFQThCQTtFVGo1Rkosd0NBRmlCO0VTeTlHYjtFQUNBO0VBQ0EsV0N4K0dhO0FEd1RyQjtBQTRrRlE7RWpCdDNGSjtFaUJ3M0ZRLFdQOTNGVTtBT29UdEI7QUE2a0ZRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQTNrRlo7QUE2a0ZZO0VBQ0k7QUEza0ZoQjtBQStrRlE7RUFDSTtFQUNBO0FBN2tGWjtBQXdsRlE7RUFDSTtBQXRsRlo7QVQ1VEk7RUFDSTtBUzhUUjtBQTJwR1k7RVQ1OUdSLHFDQUZpQjtFU2crR0w7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFdDci9HSztBRDRWckI7QVQzVUk7RUFDSTtBUzZVUjtBQXlwR1k7RUFDSTtFQUNBO0FBdnBHaEI7QUF5cEdnQjtFQUNJO0VBQ0E7QUF2cEdwQjtBYnhVSTtFYWcyRkE7SUFxb0JRO0lBQ0Esd0NQbi9HWTtJT28vR1o7RUF6cEdWO0FBQ0Y7QWIvVUk7RWFnMkZBO0lBMm9CUTtFQXhwR1Y7QUFDRjtBQTBwR1E7RUFDSTtFQUNBO0FBeHBHWjtBQTBwR1k7RUFDSTtBQXhwR2hCO0FiM1ZJO0Vhay9HUTtJQUlRO0VBdnBHbEI7QUFDRjtBQTBwR1k7RUFDSTtFQUNBLHlCM0IvZ0hNO0UyQmdoSE47QUF4cEdoQjtBQTBwR2dCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0Esd0NQbmhISTtFT29oSEosV0N0aUhDO0FEOFlyQjtBQTRwR1k7RUFDSTtBQTFwR2hCO0FibFhJO0VhMmdIUTtJQUlRO0VBenBHbEI7QUFDRjtBQTZwR1E7RUFDSTtFQUNBLG1DRXJqSHFCO0VGc2pIckI7RUFDQTtBQTNwR1o7QUE4cEdRO0VBQ0k7RUFDQSxXUHZqSFc7RU93akhYO0VBQ0E7RUFDQTtFQUNBO0FBNXBHWjtBQStwR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQSxXUGhrSFc7QU9tYXZCO0FiM1lJO0Vhb2lISTtJQU9RO0VBNXBHZDtBQUNGO0FBK3BHUTtFQUNJO0VBQ0E7QUE3cEdaO0FicFpJO0VhK2lISTtJQUtRO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RUE1cEdkO0FBQ0YsQzs7OztBM0I3YkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQzVEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQVdBOztFQUFBO0FBVUE7O0VBQUE7QUNoQ0E7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNBQTs7Ozs7RUFBQTtBWXNDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDOUJqaUVnQjtFOEJraUVoQixjVjFrRVM7RVUya0VUO0FBN3pEWjtBQSt6RFk7RUFDSTtBQTd6RGhCO0FBZzBEWTtFQUNJO0FBOXpEaEI7QUFrMERnQjtFQUNJO0FBaDBEcEI7QUFxMERRO0VBQ0k7QUFuMERaOztBQWdwRkE7QUFpQ0E7O0VBQUE7QUF5ZUE7O0VBQUE7QUF4cEdJO0VBQ0k7RUFDQTtFQUNBLG1COUJyUmdCO0U4Qjg4R3BCO0VBQ0E7QUFockdKO0FBa3JHSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBaHJHUixDOzs7O0E5QjVUQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0Fhc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0MvQmppRWdCO0UrQmtpRWhCLGNYMWtFUztFVzJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQTdvR1E7RUFDSTtFQUNBO0VBRUE7RUFDQTtFQUNBO0FBSlo7QWpCdFJJO0VpQm1SQTtJQW1yR0k7RUE1cUdOO0FBQ0YsQzs7OztBL0IzVEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQzVEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQVdBOztFQUFBO0FBVUE7O0VBQUE7QUNoQ0E7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNBQTs7Ozs7RUFBQTtBY3NDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDaENqaUVnQjtFZ0NraUVoQixjWjFrRVM7RVkya0VUO0FBN3pEWjtBQSt6RFk7RUFDSTtBQTd6RGhCO0FBZzBEWTtFQUNJO0FBOXpEaEI7QUFrMERnQjtFQUNJO0FBaDBEcEI7QUFxMERRO0VBQ0k7QUFuMERaOztBQWdwRkE7QUFpQ0E7O0VBQUE7QUF5ZUE7O0VBQUE7QUF1Q1E7RUFDSTtFQUNBO0VBQ0E7QUF2ckdaO0FBMHJHUTtFZDk5R0osNEVBRmlCO0VjaytHVDtFQUNBO0VBQ0E7RUFDQTtFQUNBLHNCQWZRO0VBZ0JSO0VBQ0Esd0NabitHWTtFWW8rR1o7QUF4ckdaO0FkN1NJO0VBQ0k7QWMrU1I7QUF1ckdZO0VBQ0k7RUFDQTtFQUNBLHdDaEN2OEdZO0FnQ2tSNUI7QUF5ckdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsV1pqZ0hVO0FZMFV0QixDOzs7O0FoQ25WQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0Flc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0NqQ2ppRWdCO0VpQ2tpRWhCLGNiMWtFUztFYTJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQW9DSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBcHJHUjtBQXNyR1E7RUFDSSxlSnorR2E7QUlxVHpCO0FBdXJHUTtFQUNJO0VBQ0EsbUJiOStHVztFYSsrR1g7RUFDQTtBQXJyR1o7QUF3ckdRO0VBQ0k7RUFDQTtBQXRyR1o7QUF5ckdRO0VBQ0k7RUFDQTtBQXZyR1o7QW5CdFNJO0VtQjI5R0k7SUFLUTtFQXRyR2Q7QUFDRjtBQXlyR1E7RUFDSSxXYjUvR1U7RWE2L0dWO0FBdnJHWjtBQXlyR1k7RUFFSTtFQUNBO0VBQ0E7QUF4ckdoQixDOzs7O0FqQ3BWQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0FnQnNDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDbENqaUVnQjtFa0NraUVoQixjZDFrRVM7RWMya0VUO0FBN3pEWjtBQSt6RFk7RUFDSTtBQTd6RGhCO0FBZzBEWTtFQUNJO0FBOXpEaEI7QUFrMERnQjtFQUNJO0FBaDBEcEI7QUFxMERRO0VBQ0k7QUFuMERaOztBQWdwRkE7QUFpQ0E7O0VBQUE7QUF5ZUE7O0VBQUE7QUFvQ0k7RUFDSTtBQXByR1I7QUFzckdRO0VBQ0k7QUFwckdaO0FBc3JHWTtFQUNJO0FBcHJHaEI7QUF3ckdRO0VBQ0k7RUFDQTtBQXRyR1o7QUF3ckdZO0VBQ0k7QUF0ckdoQjtBQTByR1E7RUFDSTtFQUNBLFdkci9HVztBYzZUdkI7QUEyckdRO0VBQ0k7QUF6ckdaO0FwQnRTSTtFb0I4OUdJO0lBSVE7RUF4ckdkO0FBQ0Y7QUEyckdRO0VBQ0k7QUF6ckdaO0FBMnJHWTtFQUNJLGNkcmdITztBYzRVdkI7QUE0ckdZO0VBQ0k7QUExckdoQjtBQTZyR1k7RUFDSSxXZHpnSE07RWMwZ0hOO0FBM3JHaEIsQzs7OztBbEN4VkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQzVEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQVdBOztFQUFBO0FBVUE7O0VBQUE7QUNoQ0E7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNBQTs7Ozs7RUFBQTtBaUJzQ0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUF3R1E7RUFDSTtFQUNBO0FBc0VaOztBQW5EQTs7RUFBQTtBQXlTQTs7RUFBQTtBQXdFQTs7RUFBQTtBQXlDQTs7RUFBQTtBQTJQQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTZDQTs7RUFBQTtBQXNDQTs7RUFBQTtBQWlqQ1E7RUFDSSx3Q25DamlFZ0I7RW1Da2lFaEIsY2Yxa0VTO0VlMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FBN2hHUTtFQUNJO0VBQ0E7QUFuSFo7QUFzSFE7RUFDSTtFQUNBO0VBQ0E7QUFwSFo7QUFzSFk7RUFDSTtFQUNBO0FBcEhoQixDOzs7O0FuQzVUQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0FrQnNDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDcENqaUVnQjtFb0NraUVoQixjaEIxa0VTO0VnQjJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQXZnR1E7RUFDSTtBQXpJWjtBQTZJWTtFQUNJO0VBQ0E7RUFDQSxjcEN2Wk87QW9DNFF2QjtBQTZJZ0I7RUFDSTtBQTNJcEI7QUFnSlE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUE5SVo7QUFpSlE7RUFDSTtBQS9JWjtBQWtKUTtFQUNJO0VBQ0E7QUFoSlo7QUFrSlk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQWhKaEI7QUFvSlE7RUFDSTtBQWxKWjtBQXFKUTtFQUNJO0VBQ0E7QUFuSlo7O0FBK29HSTtFQUNJO0VBQ0E7QUE1b0dSLEM7Ozs7QXBDM1ZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QW1Cc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0NyQ2ppRWdCO0VxQ2tpRWhCLGNqQjFrRVM7RWlCMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FBcjhGSTtFQUNJO0VBQ0E7RUFDQTtBQTNNUjtBQTZNUTtFQUNJO0FBM01aO0FBOE1RO0VBQ0k7QUE1TVo7QUE4TVk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZbEMvZFM7RWtDZ2VUO0FBNU1oQixDOzs7O0FyQ3BVQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0FvQnNDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDdENqaUVnQjtFc0NraUVoQixjbEIxa0VTO0VrQjJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQXg2Rkk7RTVCcGhCQTtBNEI2U0o7QUEyT1k7RTVCeGhCUjtFNEIwaEJZO0VBQ0EsY3RDMWZLO0VzQzJmTDtBQXpPaEI7QUE2T1E7RUFDSTtFQUNBLGNsQnpoQlE7QWtCOFNwQjtBQThPUTtFQUNJO0VBQ0E7RUFDQTtBQTVPWjtBQThPWTtFQUNJO0FBNU9oQjs7QUFpcUdJO0VBQ0ksV2xCNzlHYztFa0I4OUdkO0FBOXBHUjtBeEJ6U0k7RXdCcThHQTtJQUtRO0lBQ0E7RUE3cEdWO0FBQ0Y7QUErcEdRO0VBQ0ksY2xCMStHVztFa0IyK0dYO0VBQ0E7RUFDQTtBQTdwR1osQzs7OztBdENyVkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQzVEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQVdBOztFQUFBO0FBVUE7O0VBQUE7QUNoQ0E7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNBQTs7Ozs7RUFBQTtBcUJzQ0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUF3R1E7RUFDSTtFQUNBO0FBc0VaOztBQW5EQTs7RUFBQTtBQXlTQTs7RUFBQTtBQXdFQTs7RUFBQTtBQXlDQTs7RUFBQTtBQTJQQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTZDQTs7RUFBQTtBQXNDQTs7RUFBQTtBQWlqQ1E7RUFDSSx3Q3ZDamlFZ0I7RXVDa2lFaEIsY25CMWtFUztFbUIya0VUO0FBN3pEWjtBQSt6RFk7RUFDSTtBQTd6RGhCO0FBZzBEWTtFQUNJO0FBOXpEaEI7QUFrMERnQjtFQUNJO0FBaDBEcEI7QUFxMERRO0VBQ0k7QUFuMERaOztBQWdwRkE7QUFpQ0E7O0VBQUE7QUF5ZUE7O0VBQUE7QUFvQ0k7RTdCaCtHQTtFNkJrK0dJO0FBcHJHUjtBQXNyR1E7RTdCcCtHSjtFNkJzK0dRO0FBcHJHWjtBQXVyR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQXJyR1o7QUF3ckdRO0VBQ0k7QUF0ckdaLEM7Ozs7QXZDaFVBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QXNCc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0N4Q2ppRWdCO0V3Q2tpRWhCLGNwQjFrRVM7RW9CMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FBbjFGUTtFQUNJO0VBQ0EsV3BCdm1CVTtBb0IwU3RCO0FBa3JHSTtFQUNJO0VBQ0E7QUFockdSO0FBa3JHUTtFQUNJO0FBaHJHWjtBQW9yR0k7RUFDSTtBQWxyR1I7QUFxckdJO0V0QmwrR0EsbUNBRmlCO0VzQnMrR2IsbUNYbi9HeUI7RVdvL0d6QjtBQW5yR1I7QXRCaFRJO0VBQ0k7QXNCa1RSO0FBa3JHUTtFQUNJO0FBaHJHWjtBQW9yR0k7RUFDSSxXcEJ2L0dlO0FvQnFVdkIsQzs7OztBeEMzVUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQzVEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQVdBOztFQUFBO0FBVUE7O0VBQUE7QUNoQ0E7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNBQTs7Ozs7RUFBQTtBdUJzQ0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUF3R1E7RUFDSTtFQUNBO0FBc0VaOztBQW5EQTs7RUFBQTtBQXlTQTs7RUFBQTtBQXdFQTs7RUFBQTtBQXlDQTs7RUFBQTtBQTJQQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTZDQTs7RUFBQTtBQXNDQTs7RUFBQTtBQWlqQ1E7RUFDSSx3Q3pDamlFZ0I7RXlDa2lFaEIsY3JCMWtFUztFcUIya0VUO0FBN3pEWjtBQSt6RFk7RUFDSTtBQTd6RGhCO0FBZzBEWTtFQUNJO0FBOXpEaEI7QUFrMERnQjtFQUNJO0FBaDBEcEI7QUFxMERRO0VBQ0k7QUFuMERaOztBQWdwRkE7QUFpQ0E7O0VBQUE7QUF5ZUE7O0VBQUE7QUF6MEZJO0VBQ0k7QUF2VVI7QUF5VVE7RUFDSTtFQUNBO0VBU0E7RUFJQTtBQWxWWjtBM0J4Ukk7RTJCMmxCSTtJQUtRO0VBcFVkO0FBQ0Y7QUEwVVk7RUFDSTtBQXhVaEI7QUE2VVE7RUFDSTtBQTNVWjtBM0JuU0k7RTJCaW5CWTtJQUNJLG1CekNob0JFO0V5Q3FUcEI7QUFDRjtBQStVUTtFQUNJO0FBN1VaO0FBK1VZO0VBRUk7QUE5VWhCO0FBaVZZO0VBQ0ksbUJ6QzlvQk07QXlDK1R0QjtBM0JqVEk7RTJCK25CUTtJQUlRO0lBQ0Esa0N6Qy9tQlE7RXlDaVMxQjtBQUNGO0FBaVZZO0VBQ0k7QUEvVWhCO0EzQjFUSTtFMkJ3b0JRO0lBSVE7RUE5VWxCO0FBQ0Y7QUFpVlk7RUFDSTtFQUNBO0VBQ0E7QUEvVWhCO0FBbVZRO0VBQ0k7QUFqVlo7QUE4bkdJO0VBQ0k7QUE1bkdSLEM7Ozs7QXpDMVdBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QXdCc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0MxQ2ppRWdCO0UwQ2tpRWhCLGN0QjFrRVM7RXNCMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FBdUNJO0VBQ0k7RUFDQTtFQUNBLFlkeCtHb0I7QWNpVDVCO0FBeXJHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQXZyR1o7QUF5ckdZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUF2ckdoQjtBQTByR1k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBeHJHaEI7QUEyckdZO0VBQ0k7QUF6ckdoQjtBQThyR2dCO0VBQ0k7QUE1ckdwQjtBQStyR2dCO0VBQ0k7QUE3ckdwQjtBQWlzR1k7RUFDSTtBQS9yR2hCO0FBbXNHUTtFeEJqaEhKLGlDQUZpQjtFd0JxaEhUO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxnQnRCL2hIVTtFc0JnaUhWLGMxQzVoSFU7RTBDNmhIVjtFQUNBO0VBQ0E7RUFDQTtBQWpzR1o7QXhCMVZJO0VBQ0k7QXdCNFZSO0FBZ3NHWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxnQnRCNWlITTtFc0I2aUhOO0VBQ0E7RUFDQTtBQTlyR2hCLEM7Ozs7QTFDMVhBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QXlCc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0MzQ2ppRWdCO0UyQ2tpRWhCLGN2QjFrRVM7RXVCMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FENzdHSTtFQUNJO0VBQ0E7RUFDQSxZZEpvQjtBZWlUNUI7QUQzU1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUM2U1o7QUQzU1k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQzZTaEI7QUQxU1k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FDNFNoQjtBRHpTWTtFQUNJO0FDMlNoQjtBRHRTZ0I7RUFDSTtBQ3dTcEI7QURyU2dCO0VBQ0k7QUN1U3BCO0FEblNZO0VBQ0k7QUNxU2hCO0FEalNRO0V4QjdDSixpQ0FGaUI7RXdCaURUO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxnQnRCM0RVO0VzQjREVixjMUN4RFU7RTBDeURWO0VBQ0E7RUFDQTtFQUNBO0FDbVNaO0F6QjFWSTtFQUNJO0F5QjRWUjtBRHBTWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxnQnRCeEVNO0VzQnlFTjtFQUNBO0VBQ0E7QUNzU2hCOztBRHRYSTtFQUNJO0VBQ0E7RUFDQSxZZEpvQjtBZTZYNUI7QUR2WFE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUN5WFo7QUR2WFk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQ3lYaEI7QUR0WFk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FDd1hoQjtBRHJYWTtFQUNJO0FDdVhoQjtBRGxYZ0I7RUFDSTtBQ29YcEI7QURqWGdCO0VBQ0k7QUNtWHBCO0FEL1dZO0VBQ0k7QUNpWGhCO0FEN1dRO0V4QjdDSixpQ0FGaUI7RXdCaURUO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxnQnRCM0RVO0VzQjREVixjMUN4RFU7RTBDeURWO0VBQ0E7RUFDQTtFQUNBO0FDK1daO0F6QnRhSTtFQUNJO0F5QndhUjtBRGhYWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxnQnRCeEVNO0VzQnlFTjtFQUNBO0VBQ0E7QUNrWGhCLEM7Ozs7QTNDdGNBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QTBCc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0M1Q2ppRWdCO0U0Q2tpRWhCLGN4QjFrRVM7RXdCMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FGNzdHSTtFQUNJO0VBQ0E7RUFDQSxZZEpvQjtBZ0JpVDVCO0FGM1NRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FFNlNaO0FGM1NZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUU2U2hCO0FGMVNZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBRTRTaEI7QUZ6U1k7RUFDSTtBRTJTaEI7QUZ0U2dCO0VBQ0k7QUV3U3BCO0FGclNnQjtFQUNJO0FFdVNwQjtBRm5TWTtFQUNJO0FFcVNoQjtBRmpTUTtFeEI3Q0osaUNBRmlCO0V3QmlEVDtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsZ0J0QjNEVTtFc0I0RFYsYzFDeERVO0UwQ3lEVjtFQUNBO0VBQ0E7RUFDQTtBRW1TWjtBMUIxVkk7RUFDSTtBMEI0VlI7QUZwU1k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsZ0J0QnhFTTtFc0J5RU47RUFDQTtFQUNBO0FFc1NoQjs7QUZ0WEk7RUFDSTtFQUNBO0VBQ0EsWWRKb0I7QWdCNlg1QjtBRnZYUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBRXlYWjtBRnZYWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FFeVhoQjtBRnRYWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUV3WGhCO0FGclhZO0VBQ0k7QUV1WGhCO0FGbFhnQjtFQUNJO0FFb1hwQjtBRmpYZ0I7RUFDSTtBRW1YcEI7QUYvV1k7RUFDSTtBRWlYaEI7QUY3V1E7RXhCN0NKLGlDQUZpQjtFd0JpRFQ7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGdCdEIzRFU7RXNCNERWLGMxQ3hEVTtFMEN5RFY7RUFDQTtFQUNBO0VBQ0E7QUUrV1o7QTFCdGFJO0VBQ0k7QTBCd2FSO0FGaFhZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGdCdEJ4RU07RXNCeUVOO0VBQ0E7RUFDQTtBRWtYaEIsQzs7OztBNUN0Y0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQzVEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQVdBOztFQUFBO0FBVUE7O0VBQUE7QUNoQ0E7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNBQTs7Ozs7RUFBQTtBMkJzQ0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUF3R1E7RUFDSTtFQUNBO0FBc0VaOztBQW5EQTs7RUFBQTtBQXlTQTs7RUFBQTtBQXdFQTs7RUFBQTtBQXlDQTs7RUFBQTtBQTJQQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTZDQTs7RUFBQTtBQXNDQTs7RUFBQTtBQWlqQ1E7RUFDSSx3QzdDamlFZ0I7RTZDa2lFaEIsY3pCMWtFUztFeUIya0VUO0FBN3pEWjtBQSt6RFk7RUFDSTtBQTd6RGhCO0FBZzBEWTtFQUNJO0FBOXpEaEI7QUFrMERnQjtFQUNJO0FBaDBEcEI7QUFxMERRO0VBQ0k7QUFuMERaOztBQWdwRkE7QUFpQ0E7O0VBQUE7QUF5ZUE7O0VBQUE7QUFvQ0k7RUFDSTtFQUNBO0VBQ0Esb0N6Qmo5R2dCO0V5Qms5R2hCO0VBQ0E7QUFwckdSO0EvQi9QSTtFK0I4NkdBO0lBUVE7SUFDQTtFQW5yR1Y7QUFDRjtBQXFyR1E7RUFDSSx5QnpCcitHUztFeUJzK0dUO0VBQ0EsYzdDditHVTtBNkNvVHRCO0FBc3JHUTtFQUNJLGtDN0NuOEdnQjtFNkNvOEdoQjtFQUNBLGN6QjcrR1M7RXlCOCtHVDtBQXByR1o7QUF1ckdRO0VBQ0ksa0M3QzE4R2dCO0U2QzI4R2hCO0VBQ0EsY3pCbi9HUTtBeUI4VHBCLEM7Ozs7QTdDNVVBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QTRCc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0M5Q2ppRWdCO0U4Q2tpRWhCLGMxQjFrRVM7RTBCMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FBaHJGSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlsQnR4QnNCO0VrQm0rRzFCO0VBQ0Esa0NqQnQrR2tCO0FpQjBUdEIsQzs7OztBOUMxVEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQzVEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQVdBOztFQUFBO0FBVUE7O0VBQUE7QUNoQ0E7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNBQTs7Ozs7RUFBQTtBNkJzQ0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUF3R1E7RUFDSTtFQUNBO0FBc0VaOztBQW5EQTs7RUFBQTtBQXlTQTs7RUFBQTtBQXdFQTs7RUFBQTtBQXlDQTs7RUFBQTtBQTJQQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTZDQTs7RUFBQTtBQXNDQTs7RUFBQTtBQWlqQ1E7RUFDSSx3Qy9DamlFZ0I7RStDa2lFaEIsYzNCMWtFUztFMkIya0VUO0FBN3pEWjtBQSt6RFk7RUFDSTtBQTd6RGhCO0FBZzBEWTtFQUNJO0FBOXpEaEI7QUFrMERnQjtFQUNJO0FBaDBEcEI7QUFxMERRO0VBQ0k7QUFuMERaOztBQWdwRkE7QUFpQ0E7O0VBQUE7QUF5ZUE7O0VBQUE7QUFvQ0k7RUFDSTtFQUNBO0VBQ0EsbUIvQzM5R2M7RStDNDlHZDtFQUNBO0VBQ0E7QUFwckdSO0FqQ2hRSTtFaUM4NkdBO0lBU1E7SUFDQTtFQW5yR1Y7QUFDRjtBQXFyR1E7RUFDSTtBQW5yR1osQzs7OztBL0NoVUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQzVEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQVdBOztFQUFBO0FBVUE7O0VBQUE7QUNoQ0E7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNBQTs7Ozs7RUFBQTtBOEJzQ0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUF3R1E7RUFDSTtFQUNBO0FBc0VaOztBQW5EQTs7RUFBQTtBQXlTQTs7RUFBQTtBQXdFQTs7RUFBQTtBQXlDQTs7RUFBQTtBQTJQQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTZDQTs7RUFBQTtBQXNDQTs7RUFBQTtBQWlqQ1E7RUFDSSx3Q2hEamlFZ0I7RWdEa2lFaEIsYzVCMWtFUztFNEIya0VUO0FBN3pEWjtBQSt6RFk7RUFDSTtBQTd6RGhCO0FBZzBEWTtFQUNJO0FBOXpEaEI7QUFrMERnQjtFQUNJO0FBaDBEcEI7QUFxMERRO0VBQ0k7QUFuMERaOztBQWdwRkE7QUFpQ0E7O0VBQUE7QUF5ZUE7O0VBQUE7QUFqbkZJO0VBQ0k7QUEvaEJSO0FBaWlCUTtFQUNJO0VBQ0E7QUEvaEJaLEM7Ozs7QWhEdFRBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QStCc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0NqRGppRWdCO0VpRGtpRWhCLGM3QjFrRVM7RTZCMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FBd0NJO0VBQ0k7RUFDQTtFQUNBO0FBeHJHUjtBQTByR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBeHJHWjtBQTJyR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUF6ckdaO0FBNHJHZ0I7RUFDSTtBQTFyR3BCO0FBOHJHWTtFQUNJO0FBNXJHaEI7QUE4ckdnQjtFQUNJO0FBNXJHcEI7QUFpc0dRO0UvQjcvR0osbUNBRmlCO0UrQmlnSFQ7RUFDQSxXQTVDK0I7RUE2Qy9CLFlBN0MrQjtFQThDL0IsYzdCN2dIVztBNkI4VXZCO0EvQmpVSTtFQUNJO0ErQm1VUjtBQThyR1k7RUFDSTtBQTVyR2hCO0FBZ3NHUTtFQUVJLGM3QjNoSFc7QTZCNFZ2QjtBQWtzR1E7RUFDSSxjN0IvaEhXO0E2QitWdkI7QUFtc0dRO0VBQ0k7RUFDQSxjN0IvaEhXO0U2QmdpSFg7QUFqc0daO0FBb3NHUTtFQUNJO0FBbHNHWjtBQXFzR2dCO0VBQ0k7RUFDQSxnQkF6RTZCO0FBMW5HakQ7QUF1c0dZO0VBQ0ksZUE5RWlDO0VBK0VqQyxnQkEvRWlDO0FBdG5HakQ7QUF1c0dnQjtFQUNJO0FBcnNHcEI7QUE0c0dnQjtFQUNJO0VBQ0EsZUExRmdDO0FBaG5HcEQ7QUE0c0dvQjtFQUNJO0FBMXNHeEI7QUErc0dZO0VBQ0ksY0FuR29DO0VBb0dwQyxlQXBHb0M7QUF6bUdwRDtBQStzR2dCO0VBQ0k7QUE3c0dwQjtBQWt0R1E7RUFDSTtBQWh0R1o7QUFtdEdRO0VBQ0k7QUFqdEdaO0FBbXRHWTtFQUNJO0FBanRHaEI7QUFxdEdRO0VBQ0k7QUFudEdaLEM7Ozs7QWpENVlBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QWdDc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0NsRGppRWdCO0VrRGtpRWhCLGM5QjFrRVM7RThCMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FBaGdGUTtFQUNJO0VBQ0EseUJsRDU2Qlk7QWtENFJ4QjtBQW9wQlk7RXhDbDhCUjtFd0NvOEJZO0FBbHBCaEIsQzs7OztBbER2VEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQzVEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQVdBOztFQUFBO0FBVUE7O0VBQUE7QUNoQ0E7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNBQTs7Ozs7RUFBQTtBaUNzQ0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUF3R1E7RUFDSTtFQUNBO0FBc0VaOztBQW5EQTs7RUFBQTtBQXlTQTs7RUFBQTtBQXdFQTs7RUFBQTtBQXlDQTs7RUFBQTtBQTJQQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTZDQTs7RUFBQTtBQXNDQTs7RUFBQTtBQWlqQ1E7RUFDSSx3Q25EamlFZ0I7RW1Ea2lFaEIsYy9CMWtFUztFK0Iya0VUO0FBN3pEWjtBQSt6RFk7RUFDSTtBQTd6RGhCO0FBZzBEWTtFQUNJO0FBOXpEaEI7QUFrMERnQjtFQUNJO0FBaDBEcEI7QUFxMERRO0VBQ0k7QUFuMERaOztBQWdwRkE7QUFpQ0E7O0VBQUE7QUF5ZUE7O0VBQUE7QUFqa0JJO0VBQ0k7RUFDQTtFQUNBO0VBOEJBO0FBNW1GUjtBQWdsRlE7RXpDdDNGSjtFeUN3M0ZRLFcvQjkzRlU7QStCZ1R0QjtBQWlsRlE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBL2tGWjtBQWlsRlk7RUFDSTtBQS9rRmhCO0FBbWxGUTtFQUNJO0VBQ0E7QUFqbEZaO0FBNGxGUTtFQUNJO0FBMWxGWixDOzs7O0FuRDFVQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0FrQ3NDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDcERqaUVnQjtFb0RraUVoQixjaEMxa0VTO0VnQzJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQTc5RVE7RUFDSTtBQW5yQlo7QUFxckJZO0VBRUkseUJwRGw5QlE7QW9EOFJ4QixDOzs7O0FwRHJUQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0FtQ3NDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDckRqaUVnQjtFcURraUVoQixjakMxa0VTO0VpQzJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQW9DSTtFQUNJO0FBcHJHUixDOzs7O0FyRGxUQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0FvQ3NDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDdERqaUVnQjtFc0RraUVoQixjbEMxa0VTO0VrQzJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQS84RUk7RUFDSTtFQUNBO0FBanNCUjtBQW1zQlE7RUFDSTtBQWpzQlosQzs7OztBdER0VEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQzVEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQVdBOztFQUFBO0FBVUE7O0VBQUE7QUNoQ0E7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNBQTs7Ozs7RUFBQTtBcUNzQ0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUF3R1E7RUFDSTtFQUNBO0FBc0VaOztBQW5EQTs7RUFBQTtBQXlTQTs7RUFBQTtBQXdFQTs7RUFBQTtBQXlDQTs7RUFBQTtBQTJQQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTZDQTs7RUFBQTtBQXNDQTs7RUFBQTtBQWlqQ1E7RUFDSSx3Q3ZEamlFZ0I7RXVEa2lFaEIsY25DMWtFUztFbUMya0VUO0FBN3pEWjtBQSt6RFk7RUFDSTtBQTd6RGhCO0FBZzBEWTtFQUNJO0FBOXpEaEI7QUFrMERnQjtFQUNJO0FBaDBEcEI7QUFxMERRO0VBQ0k7QUFuMERaOztBQWdwRkE7QUFpQ0E7O0VBQUE7QUF5ZUE7O0VBQUE7QUF2N0VJO0VBQ0kseUJ2RC8rQmlCO0F1RHNSekI7QUEydEJRO0VBQ0k7QUF6dEJaO0FBNHRCUTtFQUNJO0VBQ0E7QUExdEJaO0FBNnRCUTtFQUNJO0VBQ0E7QUEzdEJaO0FBOHRCUTtFQUNJO0VBQ0E7QUE1dEJaLEM7Ozs7QXZEalVBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QXNDc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0N4RGppRWdCO0V3RGtpRWhCLGNwQzFrRVM7RW9DMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FBb0NJO0VBRUk7RUFDQTtBQXJyR1I7QXhDL1NJO0VBQ0k7RUFDQTtFQUNBO0F3Q2lUUjtBQWtyR1E7RUFDSSxlM0J4K0dhO0EyQndUekI7QUFtckdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxtQnBDaC9HVztFb0NpL0dYO0VBQ0E7QUFqckdaO0FBb3JHUTtFQUNJO0FBbHJHWjtBMUN2U0k7RTBDdzlHSTtJQUlRO0VBanJHZDtBQUNGLEM7Ozs7QXhENVVBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QXVDc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0N6RGppRWdCO0V5RGtpRWhCLGNyQzFrRVM7RXFDMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FBb0NJO0VBQ0k7QUFwckdSO0FBc3JHUTtFQUNJO0FBcHJHWjtBQXVyR1E7RUFDSTtFQUNBO0FBcnJHWjtBQXdyR1E7RUFDSTtFQUNBLFdyQzcrR1c7QXFDdVR2QjtBQXlyR1E7RUFDSTtBQXZyR1o7QUF5ckdZO0VBQ0ksY3JDci9HTztBcUM4VHZCLEM7Ozs7QXpEblVBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QXdDc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0MxRGppRWdCO0UwRGtpRWhCLGN0QzFrRVM7RXNDMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FBc0NJO0VBQ0k7RUFDQSxvQ0FMWTtFQU1aLHNDQU5ZO0FBaHJHcEI7QUF3ckdRO0VBQ0k7RUFDQSxtQ0FWUTtFQVdSLHFDQVhRO0FBM3FHcEI7QTVDelJJO0U0QzQ4R0k7SUFNUTtJQUNBO0lBQ0E7SUFDQTtFQXJyR2Q7QUFDRjtBQXVyR1k7RUFDSTtFQUNBLHlCMUQ3K0dNO0EwRHdUdEI7QUF1ckdnQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EseUIxRHYvR0U7QTBEa1V0QixDOzs7O0ExRC9VQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0F5Q3NDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDM0RqaUVnQjtFMkRraUVoQixjdkMxa0VTO0V1QzJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQW9DSTtFQUNJO0FBcHJHUixDOzs7O0EzRGxUQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0EwQ3NDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDNURqaUVnQjtFNERraUVoQixjeEMxa0VTO0V3QzJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQXdCb0I7RUFDSTtBQXhxR3hCLEM7Ozs7QTVEbFRBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QTJDc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0M3RGppRWdCO0U2RGtpRWhCLGN6QzFrRVM7RXlDMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FBb0NJO0VBQ0k7RUFDQTtBQXByR1I7QS9DblJJO0UrQ3E4R0E7SUFLUTtFQW5yR1Y7QUFDRjtBQXFyR1E7RUFDSTtFQUNBO0FBbnJHWjtBL0M1Ukk7RStDNjhHSTtJQUtRO0VBbHJHZDtBQUNGO0FBcXJHUTtFQUNJO0FBbnJHWjtBL0NwU0k7RStDczlHSTtJQUlRO0VBbHJHZDtBQUNGO0EvQ3pTSTtFK0M2OUdRO0lBRVE7RUFsckdsQjtBQUNGO0EvQzlTSTtFK0NtK0dRO0lBRVE7SUFDQTtFQW5yR2xCO0FBQ0Y7QUF1ckdRO0VBQ0k7RUFDQTtBQXJyR1o7QS9DeFRJO0UrQzIrR0k7SUFLUTtJQUNBO0VBcHJHZDtBQUNGLEM7Ozs7QTdEOVZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QTRDc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0M5RGppRWdCO0U4RGtpRWhCLGMxQzFrRVM7RTBDMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FBc0NJO0VBQ0ksb0JBSmdCO0VBS2hCO0VBQ0E7RUFDQTtBQXRyR1I7QWhEclJJO0VnRHU4R0E7SUFPUTtFQXJyR1Y7QUFDRjtBaEQxUkk7RWdEdThHQTtJQVdRO0VBcHJHVjtBQUNGO0FBc3JHUTtFQUNJO0FBcHJHWixDOzs7O0E5RGxVQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0E2Q3NDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDL0RqaUVnQjtFK0RraUVoQixjM0Mxa0VTO0UyQzJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQXFDUTtFQUNJO0VBQ0E7QUFyckdaO0FqRG5SSTtFaURzOEdJO0lBS1E7SUFDQTtFQXByR2Q7QUFDRjtBQXVyR1E7RUFDSTtFQUNBO0VBQ0E7QUFyckdaO0FqRDlSSTtFaURnOUdJO0lBTVE7RUFwckdkO0FBQ0Y7QUFzckdZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0Esc0IzQ3YvR007RTJDdy9HTjtBQXByR2hCO0FqRDdTSTtFaUR5OUdRO0lBV1E7RUFuckdsQjtBQUNGO0FBdXJHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxzQjNDdGdIVTtBMkNpVnRCO0FqRDFUSTtFaUR5K0dJO0lBU1E7RUFwckdkO0FBQ0YsQzs7OztBL0QvVkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQzVEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQVdBOztFQUFBO0FBVUE7O0VBQUE7QUNoQ0E7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNBQTs7Ozs7RUFBQTtBOENzQ0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUF3R1E7RUFDSTtFQUNBO0FBc0VaOztBQW5EQTs7RUFBQTtBQXlTQTs7RUFBQTtBQXdFQTs7RUFBQTtBQXlDQTs7RUFBQTtBQTJQQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTZDQTs7RUFBQTtBQXNDQTs7RUFBQTtBQWlqQ1E7RUFDSSx3Q2hFamlFZ0I7RWdFa2lFaEIsYzVDMWtFUztFNEMya0VUO0FBN3pEWjtBQSt6RFk7RUFDSTtBQTd6RGhCO0FBZzBEWTtFQUNJO0FBOXpEaEI7QUFrMERnQjtFQUNJO0FBaDBEcEI7QUFxMERRO0VBQ0k7QUFuMERaOztBQWdwRkE7QUFpQ0E7O0VBQUE7QUF5ZUE7O0VBQUE7QUFvQ0k7RUFDSTtBQXByR1I7QUFzckdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQXByR1o7QWxEelJJO0VrRHc4R0k7SUFRUTtJQUNBO0VBbnJHZDtBQUNGO0FBc3JHUTtFQUNJO0FBcHJHWixDOzs7O0FoRWxVQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0ErQ3NDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDakVqaUVnQjtFaUVraUVoQixjN0Mxa0VTO0U2QzJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQW9DSTtFQUNJO0FBcHJHUixDOzs7O0FqRWxUQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0FnRHNDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDbEVqaUVnQjtFa0VraUVoQixjOUMxa0VTO0U4QzJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQW9DSTtFQUNJO0VBQ0E7QUFwckdSO0FBc3JHUTtFQUNJO0VBQ0E7QUFwckdaO0FBdXJHUTtFQUNJO0FBcnJHWjtBcEQxUkk7RW9EODhHSTtJQUlRO0VBcHJHZDtBQUNGO0FBdXJHUTtFQUNJO0VBQ0E7RUFDQTtBQXJyR1o7QUF3ckdRO0VBQ0k7QUF0ckdaO0FBeXJHUTtFQUNJO0VBQ0E7RUFDQSxXOUM3L0dXO0U4QzgvR1g7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQXZyR1o7QUF5ckdZO0VBRUksVzlDbmdITTtBOEMyVXRCO0FBNHJHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBMXJHWjtBQTZyR1E7RUFDSSxXOUNsaEhXO0U4Q21oSFg7RUFDQTtFQUNBO0VBQ0E7QUEzckdaO0FBNnJHWTtFQUVJLFc5Q3ZoSE07QThDMlZ0QixDOzs7O0FsRXBXQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0FpRHNDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDbkVqaUVnQjtFbUVraUVoQixjL0Mxa0VTO0UrQzJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQXFDUTtFQUNJO0VBQ0E7RUFDQTtBQXJyR1o7QUF1ckdZO0VBQ0k7QUFyckdoQjtBQXlyR1E7RUFDSTtBQXZyR1o7QUEwckdRO0VBQ0k7QUF4ckdaO0FBMnJHUTtFQUNJO0FBenJHWjtBQTRyR1E7RUFDSTtFQUNBO0FBMXJHWixDOzs7O0FuRXBVQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0FrRHNDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDcEVqaUVnQjtFb0VraUVoQixjaEQxa0VTO0VnRDJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQXFDUTtFQUNJO0FBcnJHWjtBQXdyR1E7RUFDSTtFQUNBO0VBQ0E7QUF0ckdaO0FBeXJHUTtFQUNJO0FBdnJHWixDOzs7O0FwRTFUQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0FtRHNDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDckVqaUVnQjtFcUVraUVoQixjakQxa0VTO0VpRDJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQW9DSTtFQUNJO0VBQ0E7QUFwckdSO0FBc3JHUTtFQUNJO0VBQ0EsNEJqRHQ5R1k7QWlEa1N4QjtBQXVyR1E7RUFDSTtFQUNBO0FBcnJHWjtBdkQzUkk7RXVEODhHSTtJQUtRO0VBcHJHZDtBQUNGO0FBdXJHUTtFQUNJO0FBcnJHWixDOzs7O0FyRW5VQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0FvRHNDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDdEVqaUVnQjtFc0VraUVoQixjbEQxa0VTO0VrRDJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQW9DSTtFQUNJO0FBcHJHUjtBQXNyR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQXByR1o7QXhEeFJJO0V3RHc4R0k7SUFPUTtFQW5yR2Q7QUFDRjtBQXNyR1E7RUFDSTtFQUNBO0FBcHJHWjtBQXVyR1E7RUFDSTtBQXJyR1osQzs7OztBdEVwVUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQzVEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQVdBOztFQUFBO0FBVUE7O0VBQUE7QUNoQ0E7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNBQTs7Ozs7RUFBQTtBcURzQ0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUF3R1E7RUFDSTtFQUNBO0FBc0VaOztBQW5EQTs7RUFBQTtBQXlTQTs7RUFBQTtBQXdFQTs7RUFBQTtBQXlDQTs7RUFBQTtBQTJQQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTZDQTs7RUFBQTtBQXNDQTs7RUFBQTtBQWlqQ1E7RUFDSSx3Q3ZFamlFZ0I7RXVFa2lFaEIsY25EMWtFUztFbUQya0VUO0FBN3pEWjtBQSt6RFk7RUFDSTtBQTd6RGhCO0FBZzBEWTtFQUNJO0FBOXpEaEI7QUFrMERnQjtFQUNJO0FBaDBEcEI7QUFxMERRO0VBQ0k7QUFuMERaOztBQWdwRkE7QUFpQ0E7O0VBQUE7QUF5ZUE7O0VBQUE7QUFvQ0k7RUFDSTtFQUNBO0FBcHJHUjtBekRuUkk7RXlEcThHQTtJQUtRO0lBQ0E7SUFDQTtFQW5yR1Y7QUFDRjtBekQxUkk7RXlEKzhHSTtJQUVRO0VBbnJHZDtBQUNGLEM7Ozs7QXZFL1RBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QXNEc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0N4RWppRWdCO0V3RWtpRWhCLGNwRDFrRVM7RW9EMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FBb0NJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBcHJHUjtBMUR2Ukk7RTBEcThHQTtJQVNRO0VBbnJHVjtBQUNGO0FBcXJHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFuckdaO0FBcXJHWTtFQUNJO0FBbnJHaEI7QUFzckdZO0VBQ0k7RUFDQTtFQUNBO0FBcHJHaEIsQzs7OztBeEU5VUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQzVEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQVdBOztFQUFBO0FBVUE7O0VBQUE7QUNoQ0E7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNBQTs7Ozs7RUFBQTtBdURzQ0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUF3R1E7RUFDSTtFQUNBO0FBc0VaOztBQW5EQTs7RUFBQTtBQXlTQTs7RUFBQTtBQXdFQTs7RUFBQTtBQXlDQTs7RUFBQTtBQTJQQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTZDQTs7RUFBQTtBQXNDQTs7RUFBQTtBQWlqQ1E7RUFDSSx3Q3pFamlFZ0I7RXlFa2lFaEIsY3JEMWtFUztFcUQya0VUO0FBN3pEWjtBQSt6RFk7RUFDSTtBQTd6RGhCO0FBZzBEWTtFQUNJO0FBOXpEaEI7QUFrMERnQjtFQUNJO0FBaDBEcEI7QUFxMERRO0VBQ0k7QUFuMERaOztBQWdwRkE7QUFpQ0E7O0VBQUE7QUF5ZUE7O0VBQUE7QUFvQ0k7RUFDSTtBQXByR1I7QTNEbFJJO0UyRHE4R0E7SUFJUTtFQW5yR1Y7QUFDRjtBQXFyR1E7RUFDSTtFQUNBO0VBQ0E7QUFuckdaO0FBc3JHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFwckdaO0FBdXJHUTtFQUNJO0FBcnJHWixDOzs7O0F6RXpVQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0F3RHNDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDMUVqaUVnQjtFMEVraUVoQixjdEQxa0VTO0VzRDJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQW9DSTtFQUNJO0FBcHJHUjtBNURsUkk7RTREcThHQTtJQUlRO0VBbnJHVjtBQUNGO0FBcXJHUTtFQUNJLHlCdEQxK0dXO0VzRDIrR1g7RUFDQTtBQW5yR1o7QTVENVJJO0U0RDQ4R0k7SUFNUTtFQWxyR2Q7QUFDRjtBQW9yR1k7RUFDSTtBQWxyR2hCO0FBc3JHUTtFQUNJO0VBQ0E7QUFwckdaLEM7Ozs7QTFFeFVBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QXlEc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0MzRWppRWdCO0UyRWtpRWhCLGN2RDFrRVM7RXVEMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FBb0NJO0VBQ0k7QUFwckdSO0E3RGxSSTtFNkRxOEdBO0lBSVE7RUFuckdWO0FBQ0Y7QUFxckdRO0VBQ0k7QUFuckdaLEM7Ozs7QTNFMVRBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QTBEc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0M1RWppRWdCO0U0RWtpRWhCLGN4RDFrRVM7RXdEMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FBb0NJO0VBQ0k7RUFDQTtBQXByR1I7QUF1ckdZO0VBQ0k7QUFyckdoQjtBQTByR1k7RUFDSTtBQXhyR2hCO0E5RHpSSTtFOERnOUdRO0lBSVE7RUF2ckdsQjtBQUNGO0FBMnJHUTtFQUNJO0FBenJHWixDOzs7O0E1RWpVQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0EyRHNDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDN0VqaUVnQjtFNkVraUVoQixjekQxa0VTO0V5RDJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQW9DSTtFQUNJO0VBQ0E7RUFDQTtBQXByR1I7QS9EcFJJO0UrRHE4R0E7SUFNUTtFQW5yR1Y7QUFDRjtBQXFyR1E7RUFDSTtFQUNBO0FBbnJHWjtBQXFyR1k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQW5yR2hCLEM7Ozs7QTdFblVBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QTREc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0M5RWppRWdCO0U4RWtpRWhCLGMxRDFrRVM7RTBEMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FBc0NZO0VBQ0k7QUF0ckdoQjtBaEVsUkk7RWdFdThHUTtJQUlRO0VBcnJHbEI7QUFDRjtBQXlyR1E7RUFDSTtBQXZyR1o7QWhFMVJJO0VnRWc5R0k7SUFJUTtFQXRyR2Q7QUFDRixDOzs7O0E5RS9UQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0E2RHNDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDL0VqaUVnQjtFK0VraUVoQixjM0Qxa0VTO0UyRDJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQW9DSTtFQUNJO0FBcHJHUjtBakVsUkk7RWlFcThHQTtJQUlRO0VBbnJHVjtBQUNGO0FBcXJHUTtFQUNJLHlCM0QxK0dXO0UyRDIrR1g7RUFDQTtBQW5yR1o7QWpFNVJJO0VpRTQ4R0k7SUFNUTtFQWxyR2Q7QUFDRjtBQW9yR1k7RUFDSTtBQWxyR2hCO0FBc3JHUTtFQUNJO0VBQ0E7QUFwckdaLEM7Ozs7QS9FeFVBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QThEc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0NoRmppRWdCO0VnRmtpRWhCLGM1RDFrRVM7RTREMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FBb0NJO0VBQ0k7RUFDQTtFQUNBLFc1RC85R2M7QTREMlN0QjtBQXNyR1E7RUFDSTtFQUNBO0VBQ0E7QUFwckdaO0FBdXJHUTtFQUNJO0FBcnJHWjtBQXVyR1k7RUFDSTtBQXJyR2hCO0FBeXJHUTtFOUR4K0dKLG1DQUZpQjtFOEQ0K0dUO0VBQ0EsVzVEbC9HVTtBNEQyVHRCO0E5RGxUSTtFQUNJO0E4RG9UUjtBQXNyR1k7RUFDSSxjNURoL0dJO0E0RDRUcEIsQzs7OztBaEYxVUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQzVEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQVdBOztFQUFBO0FBVUE7O0VBQUE7QUNoQ0E7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNBQTs7Ozs7RUFBQTtBK0RzQ0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUF3R1E7RUFDSTtFQUNBO0FBc0VaOztBQW5EQTs7RUFBQTtBQXlTQTs7RUFBQTtBQXdFQTs7RUFBQTtBQXlDQTs7RUFBQTtBQTJQQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTZDQTs7RUFBQTtBQXNDQTs7RUFBQTtBQWlqQ1E7RUFDSSx3Q2pGamlFZ0I7RWlGa2lFaEIsYzdEMWtFUztFNkQya0VUO0FBN3pEWjtBQSt6RFk7RUFDSTtBQTd6RGhCO0FBZzBEWTtFQUNJO0FBOXpEaEI7QUFrMERnQjtFQUNJO0FBaDBEcEI7QUFxMERRO0VBQ0k7QUFuMERaOztBQWdwRkE7QUFpQ0E7O0VBQUE7QUF5ZUE7O0VBQUE7QUFxQ1E7RUFDSTtBQXJyR1o7QUF3ckdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUF0ckdaO0FBd3JHWTtFQUNJO0FBdHJHaEI7QW5FM1JJO0VtRTA4R0k7SUFXUTtJQUNBO0lBQ0E7RUF0ckdkO0FBQ0Y7QW5FbFNJO0VtRTA4R0k7SS9EMTlHSiwrRUFGaUI7RStEd1RuQjtFL0RwVEU7SUFDSTtFK0RzVE47RUFvckdjO0kvRDcrR1oscUNBRmlCO0krRGkvR0Q7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtFQWxyR2xCO0UvRGxVRTtJQUNJO0UrRG9VTjtFQWtyR2M7SUFDSTtJQUNBLDJDakZ0OUdRO0VpRnNTMUI7RUFrckdrQjtJQUNJO0VBaHJHdEI7QUFDRjtBQXFyR1E7RUFDSTtFQUNBLG1DcERyaEhxQjtFb0RzaEhyQjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsV3JEM2hIUztBcUR3V3JCO0FBc3JHUTtFQUNJLDhCakZuaEhVO0VpRm9oSFY7QUFwckdaO0FBc3JHWTtFL0RuaEhSLG1EQUZpQjtFK0R1aEhMLDhCN0R2aEhJO0E2RG1XcEI7QS9EL1ZJO0VBQ0k7QStEaVdSLEM7Ozs7QWpGcFhBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QWdFc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0NsRmppRWdCO0VrRmtpRWhCLGM5RDFrRVM7RThEMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FBb0NJO0VBQ0k7QUFwckdSO0FBc3JHUTtFQUNJO0VBQ0EsVzlEcCtHVztBOERnVHZCLEM7Ozs7QWxGdFRBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QWlFc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0NuRmppRWdCO0VtRmtpRWhCLGMvRDFrRVM7RStEMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FBb0NJO0VBQ0k7QUFwckdSO0FBc3JHUTtFQUNJLHlCL0R0K0dXO0UrRHUrR1g7QUFwckdaO0FBdXJHUTtFQUNJO0FBcnJHWjtBQXdyR1E7RUFDSTtFQUNBLFcvRDErR1U7QStEb1R0QixDOzs7O0FuRjdUQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0FrRXNDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDcEZqaUVnQjtFb0ZraUVoQixjaEUxa0VTO0VnRTJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQXNDSTtFQUNJO0FBdHJHUjtBQXdyR1E7RUFDSTtFQUNBO0VBQ0Esa0NwRng3R2dCO0VvRnk3R2hCLFdoRXgrR1c7RWdFeStHWDtBQXRyR1o7QXRFelJJO0VzRTA4R0k7SUFRUTtFQXJyR2Q7QUFDRixDOzs7O0FwRjlUQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0FtRXNDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDckZqaUVnQjtFcUZraUVoQixjakUxa0VTO0VpRTJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQXNDSTtFQUNJO0FBdHJHUjtBQXdyR1E7RUFDSSxzQkFOUTtFQU9SO0FBdHJHWjtBdkV0Ukk7RXVFMDhHSTtJQUtRO0VBcnJHZDtBQUNGO0FBd3JHUTtFQUNJO0VBQ0EseUJyRjk5R1k7QXFGd1N4QixDOzs7O0FyRi9UQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0FvRXNDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDdEZqaUVnQjtFc0ZraUVoQixjbEUxa0VTO0VrRTJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQW9DSTtFQUNJO0FBcHJHUjtBQXNyR1E7RUFDSTtFQUNBO0FBcHJHWjtBeEV0Ukk7RXdFdzhHSTtJQUtRO0lBQ0E7SUFDQTtFQW5yR2Q7QUFDRjtBeEU3Ukk7RXdFazlHUTtJQUVRO0VBbnJHbEI7QUFDRixDOzs7O0F0RmxVQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0FxRXNDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDdkZqaUVnQjtFdUZraUVoQixjbkUxa0VTO0VtRTJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBdERoOEdJO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QXNEZ1RSO0F0RDlTUTtFQUNJLGVKTGE7QTBEcVR6QjtBdEQ3U1E7RUFDSTtFQUNBLG1CYlZXO0VhV1g7RUFDQTtBc0QrU1o7QXRENVNRO0VBQ0k7RUFDQTtBc0Q4U1o7QXREM1NRO0VBQ0k7RUFDQTtBc0Q2U1o7QXpFdFNJO0VtQlRJO0lBS1E7RXNEOFNkO0FBQ0Y7QXREM1NRO0VBQ0ksV2J4QlU7RWF5QlY7QXNENlNaO0F0RDNTWTtFQUVJO0VBQ0E7RUFDQTtBc0Q0U2hCOztBdERuVkk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFc0RtK0dBO0FBNW9HUjtBdERyVlE7RUFDSSxlSkxhO0EwRDRWekI7QXREcFZRO0VBQ0k7RUFDQSxtQmJWVztFYVdYO0VBQ0E7QXNEc1ZaO0F0RG5WUTtFQUNJO0VBQ0E7QXNEcVZaO0F0RGxWUTtFQUNJO0VBQ0E7QXNEb1ZaO0F6RTdVSTtFbUJUSTtJQUtRO0VzRHFWZDtBQUNGO0F0RGxWUTtFQUNJLFdieEJVO0VheUJWO0FzRG9WWjtBdERsVlk7RUFFSTtFQUNBO0VBQ0E7QXNEbVZoQjtBQSttR1E7RUFDSTtBQTdtR1o7QUFnbkdRO0VBQ0k7RUFDQTtFQUNBO0FBOW1HWjtBekVuV0k7RXlFODhHSTtJQU1RO0lBQ0E7SUFDQTtFQTdtR2Q7QUFDRjtBQWduR1E7RUFDSTtFQUNBO0FBOW1HWjtBekU5V0k7RXlFMDlHSTtJQUtRO0lBQ0E7RUE3bUdkO0FBQ0Y7QUFnbkdRO0VBQ0k7QUE5bUdaO0F6RXZYSTtFeUVvK0dJO0lBSVE7RUE3bUdkO0FBQ0Y7QUFnbkdRO0VBQ0k7QUE5bUdaLEM7Ozs7QXZGL1pBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QXNFc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0N4RmppRWdCO0V3RmtpRWhCLGNwRTFrRVM7RW9FMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0F2RGg4R0k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBdURnVFI7QXZEOVNRO0VBQ0ksZUpMYTtBMkRxVHpCO0F2RDdTUTtFQUNJO0VBQ0EsbUJiVlc7RWFXWDtFQUNBO0F1RCtTWjtBdkQ1U1E7RUFDSTtFQUNBO0F1RDhTWjtBdkQzU1E7RUFDSTtFQUNBO0F1RDZTWjtBMUV0U0k7RW1CVEk7SUFLUTtFdUQ4U2Q7QUFDRjtBdkQzU1E7RUFDSSxXYnhCVTtFYXlCVjtBdUQ2U1o7QXZEM1NZO0VBRUk7RUFDQTtFQUNBO0F1RDRTaEI7O0F2RG5WSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0V1RG0rR0E7RUFDQTtFQUNBO0FBNW9HUjtBdkR2VlE7RUFDSSxlSkxhO0EyRDhWekI7QXZEdFZRO0VBQ0k7RUFDQSxtQmJWVztFYVdYO0VBQ0E7QXVEd1ZaO0F2RHJWUTtFQUNJO0VBQ0E7QXVEdVZaO0F2RHBWUTtFQUNJO0VBQ0E7QXVEc1ZaO0ExRS9VSTtFbUJUSTtJQUtRO0V1RHVWZDtBQUNGO0F2RHBWUTtFQUNJLFdieEJVO0VheUJWO0F1RHNWWjtBdkRwVlk7RUFFSTtFQUNBO0VBQ0E7QXVEcVZoQjtBQSttR1E7RUFDSTtBQTdtR1osQzs7OztBeEZoWUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQzVEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQVdBOztFQUFBO0FBVUE7O0VBQUE7QUNoQ0E7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNBQTs7Ozs7RUFBQTtBdUVzQ0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUF3R1E7RUFDSTtFQUNBO0FBc0VaOztBQW5EQTs7RUFBQTtBQXlTQTs7RUFBQTtBQXdFQTs7RUFBQTtBQXlDQTs7RUFBQTtBQTJQQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTZDQTs7RUFBQTtBQXNDQTs7RUFBQTtBQWlqQ1E7RUFDSSx3Q3pGamlFZ0I7RXlGa2lFaEIsY3JFMWtFUztFcUUya0VUO0FBN3pEWjtBQSt6RFk7RUFDSTtBQTd6RGhCO0FBZzBEWTtFQUNJO0FBOXpEaEI7QUFrMERnQjtFQUNJO0FBaDBEcEI7QUFxMERRO0VBQ0k7QUFuMERaOztBQWdwRkE7QUFpQ0E7O0VBQUE7QUF5ZUE7O0VBQUE7QUFvQ0k7RUFDSTtFQUNBO0FBcHJHUjtBQXNyR1E7RUFDSTtFQUNBO0VBRUE7RUFDQTtBQXJyR1o7QTNFelJJO0UyRXk4R0k7SUFRUTtFQXByR2Q7QUFDRjtBM0U5Ukk7RTJFeThHSTtJQVlRO0VBbnJHZDtBQUNGO0FBc3JHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQXByR1o7QUF1ckdRO0VBQ0ksY3pGdC9HVTtFeUZ1L0dWO0VBQ0E7QUFyckdaO0EzRWhUSTtFMkVrK0dJO0lBTVE7RUFwckdkO0FBQ0Y7QTNFclRJO0UyRWsrR0k7SUFVUTtFQW5yR2Q7QUFDRjtBQXNyR1E7RUFDSSxjekZwZ0hVO0V5RnFnSFY7RUFDQTtBQXByR1o7QTNFL1RJO0UyRWcvR0k7SUFNUTtFQW5yR2Q7QUFDRjtBM0VwVUk7RTJFZy9HSTtJQVVRO0VBbHJHZDtBQUNGLEM7Ozs7QXpGeldBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QXdFc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0MxRmppRWdCO0UwRmtpRWhCLGN0RTFrRVM7RXNFMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FBb0NJO0VBQ0k7RUFDQTtBQXByR1IsQzs7OztBMUZuVEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQzVEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQVdBOztFQUFBO0FBVUE7O0VBQUE7QUNoQ0E7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNBQTs7Ozs7RUFBQTtBeUVzQ0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUF3R1E7RUFDSTtFQUNBO0FBc0VaOztBQW5EQTs7RUFBQTtBQXlTQTs7RUFBQTtBQXdFQTs7RUFBQTtBQXlDQTs7RUFBQTtBQTJQQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTZDQTs7RUFBQTtBQXNDQTs7RUFBQTtBQWlqQ1E7RUFDSSx3QzNGamlFZ0I7RTJGa2lFaEIsY3ZFMWtFUztFdUUya0VUO0FBN3pEWjtBQSt6RFk7RUFDSTtBQTd6RGhCO0FBZzBEWTtFQUNJO0FBOXpEaEI7QUFrMERnQjtFQUNJO0FBaDBEcEI7QUFxMERRO0VBQ0k7QUFuMERaOztBQWdwRkE7QUFpQ0E7O0VBQUE7QUF5ZUE7O0VBQUE7QUFvQ0k7RUFDSTtFQUNBO0FBcHJHUjtBN0VuUkk7RTZFcThHQTtJQUtRO0lBQ0E7SUFDQTtFQW5yR1Y7QUFDRixDOzs7O0EzRjFUQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0EwRXNDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDNUZqaUVnQjtFNEZraUVoQixjeEUxa0VTO0V3RTJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQW9DSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBcHJHUjtBQXNyR1E7RUFDSTtBQXByR1o7QUF1ckdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBcnJHWjtBQXdyR1E7RUFDSTtFQUNBO0FBdHJHWixDOzs7O0E1RnBVQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0EyRXNDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDN0ZqaUVnQjtFNkZraUVoQixjekUxa0VTO0V5RTJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQW9DSTtFQUNJO0FBcHJHUjtBL0VsUkk7RStFcThHQTtJQUlRO0VBbnJHVjtBQUNGO0FBcXJHUTtFQUNJO0VBQ0E7RUFDQTtBQW5yR1osQzs7OztBN0Y1VEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQzVEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQVdBOztFQUFBO0FBVUE7O0VBQUE7QUNoQ0E7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNBQTs7Ozs7RUFBQTtBNEVzQ0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUF3R1E7RUFDSTtFQUNBO0FBc0VaOztBQW5EQTs7RUFBQTtBQXlTQTs7RUFBQTtBQXdFQTs7RUFBQTtBQXlDQTs7RUFBQTtBQTJQQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTZDQTs7RUFBQTtBQXNDQTs7RUFBQTtBQWlqQ1E7RUFDSSx3QzlGamlFZ0I7RThGa2lFaEIsYzFFMWtFUztFMEUya0VUO0FBN3pEWjtBQSt6RFk7RUFDSTtBQTd6RGhCO0FBZzBEWTtFQUNJO0FBOXpEaEI7QUFrMERnQjtFQUNJO0FBaDBEcEI7QUFxMERRO0VBQ0k7QUFuMERaOztBQWdwRkE7QUFpQ0E7O0VBQUE7QUF5ZUE7O0VBQUE7QUFvQ0k7RUFDSTtFQUNBO0FBcHJHUjtBaEZuUkk7RWdGcThHQTtJQUtRO0VBbnJHVjtBQUNGO0FBcXJHUTtFQUNJO0VBQ0E7QUFuckdaO0FBcXJHWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBbnJHaEIsQzs7OztBOUZsVUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQzVEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQVdBOztFQUFBO0FBVUE7O0VBQUE7QUNoQ0E7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNBQTs7Ozs7RUFBQTtBNkVzQ0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUF3R1E7RUFDSTtFQUNBO0FBc0VaOztBQW5EQTs7RUFBQTtBQXlTQTs7RUFBQTtBQXdFQTs7RUFBQTtBQXlDQTs7RUFBQTtBQTJQQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTZDQTs7RUFBQTtBQXNDQTs7RUFBQTtBQWlqQ1E7RUFDSSx3Qy9GamlFZ0I7RStGa2lFaEIsYzNFMWtFUztFMkUya0VUO0FBN3pEWjtBQSt6RFk7RUFDSTtBQTd6RGhCO0FBZzBEWTtFQUNJO0FBOXpEaEI7QUFrMERnQjtFQUNJO0FBaDBEcEI7QUFxMERRO0VBQ0k7QUFuMERaOztBQWdwRkE7QUFpQ0E7O0VBQUE7QUF5ZUE7O0VBQUE7QUFxQ1E7RUFDSTtFQUNBO0FBcnJHWixDOzs7O0EvRm5UQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0E4RXNDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDaEdqaUVnQjtFZ0draUVoQixjNUUxa0VTO0U0RTJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQW9DSTtFQUNJO0VBQ0E7RUFDQTtBQXByR1IsQzs7OztBaEdwVEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQzVEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQVdBOztFQUFBO0FBVUE7O0VBQUE7QUNoQ0E7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNBQTs7Ozs7RUFBQTtBK0VzQ0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUF3R1E7RUFDSTtFQUNBO0FBc0VaOztBQW5EQTs7RUFBQTtBQXlTQTs7RUFBQTtBQXdFQTs7RUFBQTtBQXlDQTs7RUFBQTtBQTJQQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTZDQTs7RUFBQTtBQXNDQTs7RUFBQTtBQWlqQ1E7RUFDSSx3Q2pHamlFZ0I7RWlHa2lFaEIsYzdFMWtFUztFNkUya0VUO0FBN3pEWjtBQSt6RFk7RUFDSTtBQTd6RGhCO0FBZzBEWTtFQUNJO0FBOXpEaEI7QUFrMERnQjtFQUNJO0FBaDBEcEI7QUFxMERRO0VBQ0k7QUFuMERaOztBQWdwRkE7QUFpQ0E7O0VBQUE7QUF5ZUE7O0VBQUE7QUFxQ1E7RUFDSTtFQUNBO0FBcnJHWixDOzs7O0FqR25UQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0FnRnNDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDbEdqaUVnQjtFa0draUVoQixjOUUxa0VTO0U4RTJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQXFDUTtFQUNJO0VBQ0E7RUFDQTtBQXJyR1o7QUF1ckdZO0VBQ0k7QUFyckdoQjtBQXlyR1E7RUFDSTtBQXZyR1o7QUEwckdRO0VBQ0k7QUF4ckdaO0FBMnJHUTtFQUNJO0FBenJHWjtBQTRyR1E7RUFDSTtFQUNBO0FBMXJHWixDOzs7O0FsR3BVQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0FpRnNDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDbkdqaUVnQjtFbUdraUVoQixjL0Uxa0VTO0UrRTJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQXFDUTtFQUNJO0VBQ0E7QUFyckdaLEM7Ozs7QW5HblRBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QWtGc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0NwR2ppRWdCO0VvR2tpRWhCLGNoRjFrRVM7RWdGMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FBb0NJO0VBQ0k7QUFwckdSO0FBc3JHUTtFQUNJO0FBcHJHWjtBQXVyR1E7RUFDSTtBQXJyR1o7QUF3ckdRO0VBR0k7RUFDQTtFQUNBO0FBeHJHWixDOzs7O0FwRzdUQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0FtRnNDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDckdqaUVnQjtFcUdraUVoQixjakYxa0VTO0VpRjJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQW9DSTtFQUNJO0VBQ0E7QUFwckdSO0FBc3JHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFwckdaO0FBdXJHUTtFQUNJO0VBQ0E7RUFDQTtBQXJyR1o7QXZGM1FJO0V1RjY3R0k7SUFNUTtFQXByR2Q7QUFDRjtBQXVyR1E7RUFDSTtFQUNBO0FBcnJHWjtBQXdyR1E7RUFDSSxXakY1L0dXO0VpRjYvR1g7RUFDQTtFQUNBO0FBdHJHWjtBQXdyR1k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxnQmpGeGdITztFaUZ5Z0hQO0VBQ0E7QUF0ckdoQixDOzs7O0FyRzVWQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0FvRnNDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDdEdqaUVnQjtFc0draUVoQixjbEYxa0VTO0VrRjJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBNUQ3N0dJO0VBQ0k7RUFDQTtFQUNBLFlkSm9CO0EwRWlUNUI7QTVEM1NRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E0RDZTWjtBNUQzU1k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBNEQ2U2hCO0E1RDFTWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTRENFNoQjtBNUR6U1k7RUFDSTtBNEQyU2hCO0E1RHRTZ0I7RUFDSTtBNER3U3BCO0E1RHJTZ0I7RUFDSTtBNER1U3BCO0E1RG5TWTtFQUNJO0E0RHFTaEI7QTVEalNRO0V4QjdDSixpQ0FGaUI7RXdCaURUO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxnQnRCM0RVO0VzQjREVixjMUN4RFU7RTBDeURWO0VBQ0E7RUFDQTtFQUNBO0E0RG1TWjtBcEYxVkk7RUFDSTtBb0Y0VlI7QTVEcFNZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGdCdEJ4RU07RXNCeUVOO0VBQ0E7RUFDQTtBNERzU2hCOztBNUR0WEk7RUFDSTtFQUNBO0VBQ0EsWWRKb0I7QTBFNlg1QjtBNUR2WFE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QTREeVhaO0E1RHZYWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0E0RHlYaEI7QTVEdFhZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBNER3WGhCO0E1RHJYWTtFQUNJO0E0RHVYaEI7QTVEbFhnQjtFQUNJO0E0RG9YcEI7QTVEalhnQjtFQUNJO0E0RG1YcEI7QTVEL1dZO0VBQ0k7QTREaVhoQjtBNUQ3V1E7RXhCN0NKLGlDQUZpQjtFd0JpRFQ7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGdCdEIzRFU7RXNCNERWLGMxQ3hEVTtFMEN5RFY7RUFDQTtFQUNBO0VBQ0E7QTREK1daO0FwRnRhSTtFQUNJO0FvRndhUjtBNURoWFk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsZ0J0QnhFTTtFc0J5RU47RUFDQTtFQUNBO0E0RGtYaEIsQzs7OztBdEd0Y0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQzVEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQVdBOztFQUFBO0FBVUE7O0VBQUE7QUNoQ0E7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNBQTs7Ozs7RUFBQTtBcUZzQ0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUF3R1E7RUFDSTtFQUNBO0FBc0VaOztBQW5EQTs7RUFBQTtBQXlTQTs7RUFBQTtBQXdFQTs7RUFBQTtBQXlDQTs7RUFBQTtBQTJQQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTZDQTs7RUFBQTtBQXNDQTs7RUFBQTtBQWlqQ1E7RUFDSSx3Q3ZHamlFZ0I7RXVHa2lFaEIsY25GMWtFUztFbUYya0VUO0FBN3pEWjtBQSt6RFk7RUFDSTtBQTd6RGhCO0FBZzBEWTtFQUNJO0FBOXpEaEI7QUFrMERnQjtFQUNJO0FBaDBEcEI7QUFxMERRO0VBQ0k7QUFuMERaOztBQWdwRkE7QUFpQ0E7O0VBQUE7QUF5ZUE7O0VBQUE7QUNqOEdBO0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBSUE7RUFFQTtFQUNBO0FEZ1RKOztBQzlTQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QURpVEo7QUMvU0k7RUFDSTtBRGlUUjtBQzlTSTtFQUNJO0VBQ0E7QURnVFI7O0FDN1NBOztFQU1JO0FEZ1RKOztBQzdTQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBRGdUSjtBQzlTSTtFQUVJO0VBQ0E7QUQrU1I7QUM1U0k7RUFDSTtBRDhTUjtBQzNTSTtFQUNJO0FENlNSOztBQzFTQTtFQUNJO0VBQ0E7RUFDQTtFQVdBO0FEbVNKO0FDN1NJO0VBQ0k7QUQrU1I7QUM3U0k7RUFDSTtBRCtTUjtBQzdTSTtFQUNJO0FEK1NSO0FDMVNJO0VBQ0k7QUQ0U1I7QUN6U0k7RUFDSTtBRDJTUjtBQ3hTSTtFQUNJO0FEMFNSO0FDdlNJO0VBQ0k7RUFDQTtFQUNBO0FEeVNSOztBQ3RTQTtFQUNJO0FEeVNKOztBQTRsR0k7RUFDSTtBQXpsR1I7QUEybEdRO0VBQ0k7RUFDQSxXM0UzK0dTO0UyRTQrR1QsbUJ2R2grR1U7RXVHaStHVjtBQXpsR1o7QUEybEdZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0Esa0NuRnArR1E7RW1GcStHUjtBQXpsR2hCO0FBNGxHWTtFQUNJO0VBQ0E7QUExbEdoQjtBekZuWUk7RXlGMDhHSTtJQXVCUTtJQUNBO0VBMWxHZDtBQUNGO0F6RnpZSTtFeUYwOEdJO0lBNEJRO0VBemxHZDtBQUNGO0FBNGxHUTtFckYxL0dKLHFDQUZpQjtFcUY4L0dUO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxtQnZHMWdIVTtBdUdnYnRCO0FyRjNhSTtFQUNJO0FxRjZhUjtBQXlsR1k7RUFFSTtBQXhsR2hCO0F6Rm5hSTtFeUYwK0dJO0lBcUJRO0lBQ0E7RUF4bEdkO0FBQ0Y7QXpGemFJO0V5RjArR0k7SUEwQlE7SUFDQTtFQXZsR2Q7QUFDRjtBekYvYUk7RXlGMCtHSTtJQStCUTtJQUNBO0VBdGxHZDtBQUNGO0FBeWxHUTtFQUNJO0VBQ0E7RUFDQTtBQXZsR1o7QXpGMWJJO0V5RjhnSEk7SUFNUTtFQXRsR2Q7QUFDRixDOzs7O0F2Ry9kQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0F1RnNDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDekdqaUVnQjtFeUdraUVoQixjckYxa0VTO0VxRjJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQW9DSTtFQUNJO0FBcHJHUjtBM0ZsUkk7RTJGcThHQTtJQUlRO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RUFuckdWO0VBcXJHVTtJQUNJO0VBbnJHZDtBQUNGO0EzRmpTSTtFMkZxOEdBO0lBbUJRO0VBbnJHVjtBQUNGO0FBcXJHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EseUJ6R3QvR1U7RXlHdS9HVjtFQUNBO0FBbnJHWjtBM0YzUkk7RTJGaTlHWTtJQUNJO0VBbnJHbEI7QUFDRjtBM0Z2VEk7RTJGMjlHSTtJQW1CUTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0VBbnJHZDtBQUNGO0FBcXJHWTtFQUNJO0FBbnJHaEI7QTNGblVJO0UyRnEvR1E7SUFJUTtFQWxyR2xCO0FBQ0Y7QUFvckdnQjtFQUNJO0FBbHJHcEI7QUFzckdZO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0Esa0NyRnJoSFE7RXFGc2hIUixZN0V2aUhjO0E2RW1YOUI7QUF3ckdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUF0ckdaO0EzRjNWSTtFMkY2Z0hJO0lBT1E7SUFDQTtFQXJyR2Q7QUFDRjtBQXdyR1E7RUFFSTtFQUNBO0VBQ0E7RUFDQTtBQXZyR1o7QUEwckdRO0VBQ0k7QUF4ckdaO0FBMnJHUTtFQUNJO0VBQ0E7QUF6ckdaO0FBNHJHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUExckdaO0FBNHJHWTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQTFyR2hCO0FBNHJHZ0I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EseUJyRjdsSEc7QXFGbWF2QjtBQThyR1k7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQTVyR2hCO0FBK3JHWTtFQUNJLHFCckZobUhJO0FxRm1hcEI7QUErckdnQjtFQUNJLHdDekc1akhRO0F5RytYNUI7QUFrc0dRO0VBQ0k7RUFDQTtBQWhzR1o7QUFrc0dZO0VBQ0ksV3JGbm5ITztBcUZtYnZCLEM7Ozs7QXpHM2JBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QXdGc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0MxR2ppRWdCO0UwR2tpRWhCLGN0RjFrRVM7RXNGMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FBcUNRO0VBQ0k7RUFDQTtBQXJyR1o7QTVGblJJO0U0RnM4R0k7SUFLUTtJQUNBO0VBcHJHZDtBQUNGO0FBc3JHWTtFQUNJO0VBQ0E7QUFwckdoQjtBNUY3Ukk7RTRGKzhHUTtJQUtRO0VBbnJHbEI7QUFDRixDOzs7O0ExR2xVQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0F5RnNDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDM0dqaUVnQjtFMkdraUVoQixjdkYxa0VTO0V1RjJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQW9DSTtFQUNJO0VBQ0E7RUFDQTtBQXByR1I7QUFzckdRO0VBQ0k7RUFDQSxXdkZuK0dVO0V1Rm8rR1Y7QUFwckdaO0E3RnpSSTtFNkYwOEdJO0lBTVE7RUFuckdkO0FBQ0YsQzs7OztBM0c5VEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQzVEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQVdBOztFQUFBO0FBVUE7O0VBQUE7QUNoQ0E7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNBQTs7Ozs7RUFBQTtBMEZzQ0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUF3R1E7RUFDSTtFQUNBO0FBc0VaOztBQW5EQTs7RUFBQTtBQXlTQTs7RUFBQTtBQXdFQTs7RUFBQTtBQXlDQTs7RUFBQTtBQTJQQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTZDQTs7RUFBQTtBQXNDQTs7RUFBQTtBQWlqQ1E7RUFDSSx3QzVHamlFZ0I7RTRHa2lFaEIsY3hGMWtFUztFd0Yya0VUO0FBN3pEWjtBQSt6RFk7RUFDSTtBQTd6RGhCO0FBZzBEWTtFQUNJO0FBOXpEaEI7QUFrMERnQjtFQUNJO0FBaDBEcEI7QUFxMERRO0VBQ0k7QUFuMERaOztBQWdwRkE7QUFpQ0E7O0VBQUE7QUF5ZUE7O0VBQUE7QUFvQ0k7RUFDSTtBQXByR1I7QTlGbFJJO0U4RnE4R0E7SUFJUTtFQW5yR1Y7QUFDRjtBQXFyR1E7RUFDSTtFQUNBO0VBQ0EsV3hGeitHVztBd0ZzVHZCO0FBcXJHWTtFQUNJLFd4RnorR007RXdGMCtHTjtBQW5yR2hCO0FBdXJHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0EseUJ4RnovR1c7RXdGMC9HWDtFQUNBO0FBcnJHWjtBQXdyR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQSx5QnhGcmdIVztBd0YrVXZCLEM7Ozs7QTVHL1VBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QTJGc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0M3R2ppRWdCO0U2R2tpRWhCLGN6RjFrRVM7RXlGMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FBb0NJO0VBQ0k7RUFDQTtFQUNBO0FBcHJHUjtBL0ZwUkk7RStGcThHQTtJQU1RO0VBbnJHVjtBQUNGO0FBcXJHUTtFQUNJO0VBQ0E7RUFDQSxXekZ4K0dVO0F5RnFUdEI7QS9GOVJJO0UrRjg4R0k7SUFNUTtJQUNBO0VBbHJHZDtBQUNGO0FBcXJHUTtFQUNJO0FBbnJHWjtBL0Z2U0k7RStGeTlHSTtJQUlRO0VBbHJHZDtBQUNGLEM7Ozs7QTdHNVVBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QTRGc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0M5R2ppRWdCO0U4R2tpRWhCLGMxRjFrRVM7RTBGMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FBcUNRO0VBQ0k7QUFyckdaO0FBd3JHUTtFQUNJO0VBQ0E7RUFDQTtBQXRyR1o7QWhHdlJJO0VnRzA4R0k7SUFNUTtFQXJyR2Q7QUFDRixDOzs7O0E5RzVUQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0E2RnNDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDL0dqaUVnQjtFK0draUVoQixjM0Yxa0VTO0UyRjJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQW9DSTtFQUNJO0FBcHJHUixDOzs7O0EvR2xUQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0E4RnNDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDaEhqaUVnQjtFZ0hraUVoQixjNUYxa0VTO0U0RjJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBbEcxNEdJO0VrR2c3R1E7SUFFUTtFQXRyR2xCO0FBQ0Y7QWxHcFJJO0VrRys4R1E7SUFFUTtFQXpyR2xCO0FBQ0Y7QUE0ckdZO0VBQ0k7QUExckdoQjtBbEc1Ukk7RWtHcTlHUTtJQUlRO0VBenJHbEI7QUFDRjtBQTJyR2dCO0VBQ0k7QUF6ckdwQjtBQThyR1E7RUFDSTtBQTVyR1o7QWxHdlNJO0VrR3UrR2dCO0lwR25nSGhCO0lBQ0E7SUFDQTtFb0d1VUY7QUFDRjtBbEc5U0k7RWtHNitHUTtJOUY3L0dSLG1FQUZpQjtJTkNqQjtJQUNBO0lBQ0E7RW9Hb1VGO0U5Rm5VRTtJQUNJO0U4RnFVTjtBQUNGLEM7Ozs7QWhIelZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QStGc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0NqSGppRWdCO0VpSGtpRWhCLGM3RjFrRVM7RTZGMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FBd0NJO0VBQ0k7QUF4ckdSO0FuR2xSSTtFbUd5OEdBO0lBSVE7RUF2ckdWO0FBQ0Y7QUF5ckdRO0VBQ0k7QUF2ckdaO0FuRzFSSTtFbUdnOUdJO0lBSVE7SUFDQTtFQXRyR2Q7QUFDRjtBQXlyR1E7RUFDSSxhQW5CTTtBQXBxR2xCO0FBMHJHUTtFQUNJO0FBeHJHWjtBbkd0U0k7RW1HNjlHSTtJQUlRO0VBdnJHZDtBQUNGO0FBMHJHUTtFQUNJO0VBQ0E7QUF4ckdaO0FBMnJHUTtFQUVJO0VBQ0EsVzdGdmdIVztBNkY2VXZCO0FBNnJHUTtFQUNJO0FBM3JHWjtBbkd0VEk7RW1HZy9HSTtJQUlRO0VBMXJHZDtBQUNGO0FuRzNUSTtFbUd3L0dJO0lBSVE7SUFDQTtFQTdyR2Q7QUFDRjtBbkdqVUk7RW1HaWdISTtJQUVRO0VBOXJHZDtBQUNGLEM7Ozs7QWpIdFdBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QWdHc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0NsSGppRWdCO0VrSGtpRWhCLGM5RjFrRVM7RThGMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FBdUNJO0VBQ0k7QUF2ckdSO0FBeXJHUTtFQUNJLGVBUE07RUFRTixnQkFQTztBQWhyR25CO0FBMHJHUTtFQUNJO0FBeHJHWjtBQTJyR1E7RUFDSTtBQXpyR1o7QUE0ckdRO0VBQ0ksVzlGbi9HVztFOEZvL0dYO0VBQ0E7QUExckdaO0FwR2pTSTtFb0c4OUdJO0lBR1E7SUFDQTtFQTVyR2Q7QUFDRixDOzs7O0FsSHZVQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0FpR3NDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDbkhqaUVnQjtFbUhraUVoQixjL0Yxa0VTO0UrRjJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQXNDSTtFQUNJO0VBQ0E7RUFDQTtBQXRyR1I7QUF3ckdRO0VBQ0ksYUFSTTtBQTlxR2xCO0FBeXJHUTtFQUNJO0VBQ0E7QUF2ckdaO0FyRzNSSTtFcUdnOUdJO0lBS1E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtFQXRyR2Q7QUFDRjtBQXlyR1E7RUFDSTtBQXZyR1o7QXJHdlNJO0VxRzY5R0k7SUFJUTtFQXRyR2Q7QUFDRjtBQXlyR1E7RUFDSTtBQXZyR1o7QUEwckdRO0VBRUksVy9GcmdIVztFK0ZzZ0hYO0VBQ0E7QUF6ckdaO0FyR3BUSTtFcUdnL0dJO0lBR1E7SUFDQTtFQTNyR2Q7QUFDRjtBckcxVEk7RXFHdy9HSTtJQUVRO0VBNXJHZDtBQUNGO0FBK3JHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBN3JHWjtBQWdzR1E7RUFDSTtFQUNBO0VBQ0E7QUE5ckdaLEM7Ozs7QW5IMVdBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QWtHc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0NwSGppRWdCO0VvSGtpRWhCLGNoRzFrRVM7RWdHMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FBb0NJO0VBQ0k7RUFDQTtFQUNBO0FBcHJHUjtBQXNyR1E7RUFDSTtBQXByR1o7QUF1ckdRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBcnJHWjtBQXdyR1E7RUFDSTtFQUNBO0FBdHJHWixDOzs7O0FwSG5VQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFTQTs7RUFBQTtBQzlGQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQWVBOztFQUFBO0FBU0E7O0VBQUE7QUN2Q0E7O0VBQUE7QUFLQTs7RUFBQTtBQ0xBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDNURBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUNWQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7Ozs7RUFBQTtBQVNBOzs7O0VBQUE7QUNUQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUFVQTs7O0VBQUE7QUNwQkE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQVdBOztFQUFBO0FBV0E7O0VBQUE7QUFVQTs7RUFBQTtBQ2hDQTs7OztFQUFBO0FDQUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUFZQTs7OztFQUFBO0FBV0E7Ozs7O0VBQUE7QUM1REE7Ozs7O0VBQUE7QUNBQTs7RUFBQTtBQWFBOztFQUFBO0FDYkE7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0FtR3NDQTs7RUFBQTtBQW9DQTs7RUFBQTtBQXdHUTtFQUNJO0VBQ0E7QUFzRVo7O0FBbkRBOztFQUFBO0FBeVNBOztFQUFBO0FBd0VBOztFQUFBO0FBeUNBOztFQUFBO0FBMlBBOztFQUFBO0FBd0ZBOztFQUFBO0FBNkJBOztFQUFBO0FBNkNBOztFQUFBO0FBc0NBOztFQUFBO0FBaWpDUTtFQUNJLHdDckhqaUVnQjtFcUhraUVoQixjakcxa0VTO0VpRzJrRVQ7QUE3ekRaO0FBK3pEWTtFQUNJO0FBN3pEaEI7QUFnMERZO0VBQ0k7QUE5ekRoQjtBQWswRGdCO0VBQ0k7QUFoMERwQjtBQXEwRFE7RUFDSTtBQW4wRFo7O0FBZ3BGQTtBQWlDQTs7RUFBQTtBQXllQTs7RUFBQTtBQW9DSTtFQUNJO0VBQ0E7RUFDQTtBQXByR1IsQzs7OztBckhwVEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQzVEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQVdBOztFQUFBO0FBVUE7O0VBQUE7QUNoQ0E7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNBQTs7Ozs7RUFBQTtBb0dzQ0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUF3R1E7RUFDSTtFQUNBO0FBc0VaOztBQW5EQTs7RUFBQTtBQXlTQTs7RUFBQTtBQXdFQTs7RUFBQTtBQXlDQTs7RUFBQTtBQTJQQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTZDQTs7RUFBQTtBQXNDQTs7RUFBQTtBQWlqQ1E7RUFDSSx3Q3RIamlFZ0I7RXNIa2lFaEIsY2xHMWtFUztFa0cya0VUO0FBN3pEWjtBQSt6RFk7RUFDSTtBQTd6RGhCO0FBZzBEWTtFQUNJO0FBOXpEaEI7QUFrMERnQjtFQUNJO0FBaDBEcEI7QUFxMERRO0VBQ0k7QUFuMERaOztBQWdwRkE7QUFpQ0E7O0VBQUE7QUF5ZUE7O0VBQUE7QUFxQ1E7RUFDSTtFQUNBO0FBcnJHWjtBeEduUkk7RXdHczhHSTtJQUtRO0lBQ0E7SUFDQTtFQXByR2Q7QUFDRjtBQXVyR1E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQXJyR1o7QUF3ckdRO0VBQ0k7QUF0ckdaO0FBeXJHUTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQXZyR1o7QUEwckdRO0VBQ0k7RUFDQTtBQXhyR1osQzs7OztBdEgvVUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQzVEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQVdBOztFQUFBO0FBVUE7O0VBQUE7QUNoQ0E7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNBQTs7Ozs7RUFBQTtBcUdzQ0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUF3R1E7RUFDSTtFQUNBO0FBc0VaOztBQW5EQTs7RUFBQTtBQXlTQTs7RUFBQTtBQXdFQTs7RUFBQTtBQXlDQTs7RUFBQTtBQTJQQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTZDQTs7RUFBQTtBQXNDQTs7RUFBQTtBQWlqQ1E7RUFDSSx3Q3ZIamlFZ0I7RXVIa2lFaEIsY25HMWtFUztFbUcya0VUO0FBN3pEWjtBQSt6RFk7RUFDSTtBQTd6RGhCO0FBZzBEWTtFQUNJO0FBOXpEaEI7QUFrMERnQjtFQUNJO0FBaDBEcEI7QUFxMERRO0VBQ0k7QUFuMERaOztBQWdwRkE7QUFpQ0E7O0VBQUE7QUF5ZUE7O0VBQUE7QUFzQ0k7RUFDSTtFQUNBO0VBQ0E7QUF0ckdSO0FBd3JHUTtFQUNJLGFBUk07QUE5cUdsQjtBQXlyR1E7RUFDSTtFQUNBO0FBdnJHWjtBekczUkk7RXlHZzlHSTtJQUtRO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RUF0ckdkO0FBQ0Y7QUF5ckdRO0VBQ0k7QUF2ckdaO0F6R3ZTSTtFeUc2OUdJO0lBSVE7RUF0ckdkO0FBQ0Y7QUF5ckdRO0VBQ0k7QUF2ckdaO0FBMHJHUTtFQUVJLFduR3JnSFc7RW1Hc2dIWDtFQUNBO0FBenJHWjtBQTRyR1E7RUFDSTtBQTFyR1o7QXpHdlRJO0V5R2cvR0k7SUFJUTtFQXpyR2Q7QUFDRjtBekc1VEk7RXlHdy9HSTtJQUlRO0lBQ0E7RUE1ckdkO0FBQ0Y7QXpHbFVJO0V5R2lnSEk7SUFFUTtFQTdyR2Q7QUFDRjtBQWdzR1E7RUFDSTtFQUNBO0VBQ0E7QUE5ckdaLEM7Ozs7QXZINVdBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QXNHc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0N4SGppRWdCO0V3SGtpRWhCLGNwRzFrRVM7RW9HMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FBb0NJO0VBQ0k7RUFDQTtBQXByR1I7QTFHblJJO0UwR3E4R0E7SUFLUTtJQUNBO0lBQ0E7RUFuckdWO0FBQ0YsQzs7OztBeEgxVEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBU0E7O0VBQUE7QUM5RkE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFlQTs7RUFBQTtBQVNBOztFQUFBO0FDdkNBOztFQUFBO0FBS0E7O0VBQUE7QUNMQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQzVEQTs7RUFBQTtBQ0FBOztFQUFBO0FDQUE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FDVkE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFTQTs7OztFQUFBO0FDVEE7OztFQUFBO0FBVUE7OztFQUFBO0FBVUE7OztFQUFBO0FDcEJBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFXQTs7RUFBQTtBQVdBOztFQUFBO0FBVUE7O0VBQUE7QUNoQ0E7Ozs7RUFBQTtBQ0FBOzs7O0VBQUE7QUFhQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FBWUE7Ozs7RUFBQTtBQVdBOzs7OztFQUFBO0FDNURBOzs7OztFQUFBO0FDQUE7O0VBQUE7QUFhQTs7RUFBQTtBQ2JBOzs7O0VBQUE7QUNBQTs7Ozs7RUFBQTtBdUdzQ0E7O0VBQUE7QUFvQ0E7O0VBQUE7QUF3R1E7RUFDSTtFQUNBO0FBc0VaOztBQW5EQTs7RUFBQTtBQXlTQTs7RUFBQTtBQXdFQTs7RUFBQTtBQXlDQTs7RUFBQTtBQTJQQTs7RUFBQTtBQXdGQTs7RUFBQTtBQTZCQTs7RUFBQTtBQTZDQTs7RUFBQTtBQXNDQTs7RUFBQTtBQWlqQ1E7RUFDSSx3Q3pIamlFZ0I7RXlIa2lFaEIsY3JHMWtFUztFcUcya0VUO0FBN3pEWjtBQSt6RFk7RUFDSTtBQTd6RGhCO0FBZzBEWTtFQUNJO0FBOXpEaEI7QUFrMERnQjtFQUNJO0FBaDBEcEI7QUFxMERRO0VBQ0k7QUFuMERaOztBQWdwRkE7QUFpQ0E7O0VBQUE7QUF5ZUE7O0VBQUE7QUFvQ0k7RUFDSTtFQUNBO0FBcHJHUjtBM0duUkk7RTJHcThHQTtJQUtRO0VBbnJHVjtBQUNGO0FBcXJHUTtFQUNJO0VBQ0E7QUFuckdaLEM7Ozs7QXpINVRBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQVNBOztFQUFBO0FDOUZBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBZUE7O0VBQUE7QUFTQTs7RUFBQTtBQ3ZDQTs7RUFBQTtBQUtBOztFQUFBO0FDTEE7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQUtBOztFQUFBO0FBS0E7O0VBQUE7QUM1REE7O0VBQUE7QUNBQTs7RUFBQTtBQ0FBOztFQUFBO0FBS0E7O0VBQUE7QUFLQTs7RUFBQTtBQ1ZBOztFQUFBO0FDQUE7O0VBQUE7QUNBQTs7OztFQUFBO0FBU0E7Ozs7RUFBQTtBQ1RBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQVVBOzs7RUFBQTtBQ3BCQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBV0E7O0VBQUE7QUFXQTs7RUFBQTtBQVVBOztFQUFBO0FDaENBOzs7O0VBQUE7QUNBQTs7OztFQUFBO0FBYUE7Ozs7RUFBQTtBQWFBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQVlBOzs7O0VBQUE7QUFXQTs7Ozs7RUFBQTtBQzVEQTs7Ozs7RUFBQTtBQ0FBOztFQUFBO0FBYUE7O0VBQUE7QUNiQTs7OztFQUFBO0FDQUE7Ozs7O0VBQUE7QXdHc0NBOztFQUFBO0FBb0NBOztFQUFBO0FBd0dRO0VBQ0k7RUFDQTtBQXNFWjs7QUFuREE7O0VBQUE7QUF5U0E7O0VBQUE7QUF3RUE7O0VBQUE7QUF5Q0E7O0VBQUE7QUEyUEE7O0VBQUE7QUF3RkE7O0VBQUE7QUE2QkE7O0VBQUE7QUE2Q0E7O0VBQUE7QUFzQ0E7O0VBQUE7QUFpakNRO0VBQ0ksd0MxSGppRWdCO0UwSGtpRWhCLGN0RzFrRVM7RXNHMmtFVDtBQTd6RFo7QUErekRZO0VBQ0k7QUE3ekRoQjtBQWcwRFk7RUFDSTtBQTl6RGhCO0FBazBEZ0I7RUFDSTtBQWgwRHBCO0FBcTBEUTtFQUNJO0FBbjBEWjs7QUFncEZBO0FBaUNBOztFQUFBO0FBeWVBOztFQUFBO0FDajhHQTs7RUFBQTtBQ0FBOztFQUFBO0FBMkNBOzs7OztFQUFBO0FDM0NBOztFQUFBO0FDQUE7O0VBQUE7QUZJSTtFbEhDQTtBZ0grVEo7O0FFNVRJO0VsSEhBO0FnSG1VSjs7QUU1VEk7RUFDSTtBRitUUjs7QUU1VEk7RUFDSTtBRitUUjs7QUU1VEk7RUFDSTtBRitUUjs7QUU1VEk7RUFDSSxjeEdYWTtBc0cwVXBCOztBRTVUSTtFQUNJLGM1SGNlO0EwSGlUdkI7O0FFNVRJO0VBQ0k7QUYrVFI7O0FFOVNJO0VBQ0ksY3hHdkJnQjtBc0d3VXhCOztBRWxUSTtFQUNJLGN4R3ZCZ0I7QXNHNFV4Qjs7QUV0VEk7RUFDSSxjeEd2QmdCO0FzR2dWeEI7O0FFMVRJO0VBQ0ksY3hHdkJnQjtBc0dvVnhCOztBSy9XSTtFQUNJO0FMa1hSOztBSy9XSTtFQUNJLFczR0VlO0FzR2dYdkI7O0E3RzdXSTtFQUlnQixjbUhmRjtBTjRYbEI7QTdHdFdnQjtFQUVRLFltSHhCTjtBTitYbEI7QTdHeldnQjtFQUVRLGNtSHhCTjtBTmtZbEI7QTdHNVdnQjtFQUVRLFltSHhCTjtBTnFZbEI7QTdHL1dnQjtFQUVRLGVtSHhCTjtBTndZbEI7QTdHbFhnQjtFQUVRLFNtSHhCTjtBTjJZbEI7O0E3R3BXSTtFQUlnQjtFQUNBLGVtSDVDRjtBTmdabEI7QTdHNVZ5QjtFQUVEO0VBQ0EsYW1IdkROO0FOb1psQjs7QTdHaFd5QjtFQUVEO0VBQ0EsZW1IdkROO0FOeVpsQjs7QTdHcld5QjtFQUVEO0VBQ0EsYW1IdkROO0FOOFpsQjs7QTdHMVd5QjtFQUVEO0VBQ0EsZ0JtSHZETjtBTm1hbEI7O0E3Ry9XeUI7RUFFRDtFQUNBLFVtSHZETjtBTndhbEI7O0E3RzdaSTtFQU9vQixrQm1IbEJOO0FONGFsQjtBN0d0WmdCO0VBS1ksZ0JtSDNCVjtBTithbEI7QTdHelpnQjtFQUtZLGtCbUgzQlY7QU5rYmxCO0E3RzVaZ0I7RUFLWSxnQm1IM0JWO0FOcWJsQjtBN0cvWmdCO0VBS1ksbUJtSDNCVjtBTndibEI7QTdHbGFnQjtFQUtZLGFtSDNCVjtBTjJibEI7O0E3R3BaSTtFQVFvQjtFQUNBLG1CbUhoRE47QU5nY2xCO0E3RzVZeUI7RUFNRztFQUNBLGlCbUgzRFY7QU5vY2xCOztBN0doWnlCO0VBTUc7RUFDQSxtQm1IM0RWO0FOeWNsQjs7QTdHclp5QjtFQU1HO0VBQ0EsaUJtSDNEVjtBTjhjbEI7O0E3RzFaeUI7RUFNRztFQUNBLG9CbUgzRFY7QU5tZGxCOztBN0cvWnlCO0VBTUc7RUFDQSxjbUgzRFY7QU53ZGxCOztBN0c3Y0k7RUFPb0IscUJtSGxCTjtBTjRkbEI7QTdHdGNnQjtFQUtZLG1CbUgzQlY7QU4rZGxCO0E3R3pjZ0I7RUFLWSxxQm1IM0JWO0FOa2VsQjtBN0c1Y2dCO0VBS1ksbUJtSDNCVjtBTnFlbEI7QTdHL2NnQjtFQUtZLHNCbUgzQlY7QU53ZWxCO0E3R2xkZ0I7RUFLWSxnQm1IM0JWO0FOMmVsQjs7QTdHcGNJO0VBUW9CO0VBQ0Esc0JtSGhETjtBTmdmbEI7QTdHNWJ5QjtFQU1HO0VBQ0Esb0JtSDNEVjtBTm9mbEI7O0E3R2hjeUI7RUFNRztFQUNBLHNCbUgzRFY7QU55ZmxCOztBN0dyY3lCO0VBTUc7RUFDQSxvQm1IM0RWO0FOOGZsQjs7QTdHMWN5QjtFQU1HO0VBQ0EsdUJtSDNEVjtBTm1nQmxCOztBN0cvY3lCO0VBTUc7RUFDQSxpQm1IM0RWO0FOd2dCbEI7O0E3RzdmSTtFQU9vQixtQm1IbEJOO0FONGdCbEI7QTdHdGZnQjtFQUtZLGlCbUgzQlY7QU4rZ0JsQjtBN0d6ZmdCO0VBS1ksbUJtSDNCVjtBTmtoQmxCO0E3RzVmZ0I7RUFLWSxpQm1IM0JWO0FOcWhCbEI7QTdHL2ZnQjtFQUtZLG9CbUgzQlY7QU53aEJsQjtBN0dsZ0JnQjtFQUtZLGNtSDNCVjtBTjJoQmxCOztBN0dwZkk7RUFRb0I7RUFDQSxvQm1IaEROO0FOZ2lCbEI7QTdHNWV5QjtFQU1HO0VBQ0Esa0JtSDNEVjtBTm9pQmxCOztBN0doZnlCO0VBTUc7RUFDQSxvQm1IM0RWO0FOeWlCbEI7O0E3R3JmeUI7RUFNRztFQUNBLGtCbUgzRFY7QU44aUJsQjs7QTdHMWZ5QjtFQU1HO0VBQ0EscUJtSDNEVjtBTm1qQmxCOztBN0cvZnlCO0VBTUc7RUFDQSxlbUgzRFY7QU53akJsQjs7QTdHN2lCSTtFQU9vQixvQm1IbEJOO0FONGpCbEI7QTdHdGlCZ0I7RUFLWSxrQm1IM0JWO0FOK2pCbEI7QTdHemlCZ0I7RUFLWSxvQm1IM0JWO0FOa2tCbEI7QTdHNWlCZ0I7RUFLWSxrQm1IM0JWO0FOcWtCbEI7QTdHL2lCZ0I7RUFLWSxxQm1IM0JWO0FOd2tCbEI7QTdHbGpCZ0I7RUFLWSxlbUgzQlY7QU4ya0JsQjs7QTdHcGlCSTtFQVFvQjtFQUNBLHFCbUhoRE47QU5nbEJsQjtBN0c1aEJ5QjtFQU1HO0VBQ0EsbUJtSDNEVjtBTm9sQmxCOztBN0doaUJ5QjtFQU1HO0VBQ0EscUJtSDNEVjtBTnlsQmxCOztBN0dyaUJ5QjtFQU1HO0VBQ0EsbUJtSDNEVjtBTjhsQmxCOztBN0cxaUJ5QjtFQU1HO0VBQ0Esc0JtSDNEVjtBTm1tQmxCOztBN0cvaUJ5QjtFQU1HO0VBQ0EsZ0JtSDNEVjtBTndtQmxCOztBN0c3bEJJO0VBT29CLG1CbUhsQk47RW5Ia0JNLG9CbUhsQk47QU42bUJsQjtBN0d2bEJnQjtFQUtZLGlCbUgzQlY7RW5IMkJVLGtCbUgzQlY7QU5pbkJsQjtBN0czbEJnQjtFQUtZLG1CbUgzQlY7RW5IMkJVLG9CbUgzQlY7QU5xbkJsQjtBN0cvbEJnQjtFQUtZLGlCbUgzQlY7RW5IMkJVLGtCbUgzQlY7QU55bkJsQjtBN0dubUJnQjtFQUtZLG9CbUgzQlY7RW5IMkJVLHFCbUgzQlY7QU42bkJsQjtBN0d2bUJnQjtFQUtZLGNtSDNCVjtFbkgyQlUsZW1IM0JWO0FOaW9CbEI7O0E3RzFsQkk7RUFRb0I7RUFDQSxvQm1IaEROO0VuSCtDTTtFQUNBLHFCbUhoRE47QU53b0JsQjtBN0dwbEJ5QjtFQU1HO0VBQ0Esa0JtSDNEVjtFbkgwRFU7RUFDQSxtQm1IM0RWO0FOOG9CbEI7O0E3RzFsQnlCO0VBTUc7RUFDQSxvQm1IM0RWO0VuSDBEVTtFQUNBLHFCbUgzRFY7QU5xcEJsQjs7QTdHam1CeUI7RUFNRztFQUNBLGtCbUgzRFY7RW5IMERVO0VBQ0EsbUJtSDNEVjtBTjRwQmxCOztBN0d4bUJ5QjtFQU1HO0VBQ0EscUJtSDNEVjtFbkgwRFU7RUFDQSxzQm1IM0RWO0FObXFCbEI7O0E3Ry9tQnlCO0VBTUc7RUFDQSxlbUgzRFY7RW5IMERVO0VBQ0EsZ0JtSDNEVjtBTjBxQmxCOztBN0cvcEJJO0VBT29CLGtCbUhsQk47RW5Ia0JNLHFCbUhsQk47QU4rcUJsQjtBN0d6cEJnQjtFQUtZLGdCbUgzQlY7RW5IMkJVLG1CbUgzQlY7QU5tckJsQjtBN0c3cEJnQjtFQUtZLGtCbUgzQlY7RW5IMkJVLHFCbUgzQlY7QU51ckJsQjtBN0dqcUJnQjtFQUtZLGdCbUgzQlY7RW5IMkJVLG1CbUgzQlY7QU4yckJsQjtBN0dycUJnQjtFQUtZLG1CbUgzQlY7RW5IMkJVLHNCbUgzQlY7QU4rckJsQjtBN0d6cUJnQjtFQUtZLGFtSDNCVjtFbkgyQlUsZ0JtSDNCVjtBTm1zQmxCOztBN0c1cEJJO0VBUW9CO0VBQ0EsbUJtSGhETjtFbkgrQ007RUFDQSxzQm1IaEROO0FOMHNCbEI7QTdHdHBCeUI7RUFNRztFQUNBLGlCbUgzRFY7RW5IMERVO0VBQ0Esb0JtSDNEVjtBTmd0QmxCOztBN0c1cEJ5QjtFQU1HO0VBQ0EsbUJtSDNEVjtFbkgwRFU7RUFDQSxzQm1IM0RWO0FOdXRCbEI7O0E3R25xQnlCO0VBTUc7RUFDQSxpQm1IM0RWO0VuSDBEVTtFQUNBLG9CbUgzRFY7QU44dEJsQjs7QTdHMXFCeUI7RUFNRztFQUNBLG9CbUgzRFY7RW5IMERVO0VBQ0EsdUJtSDNEVjtBTnF1QmxCOztBN0dqckJ5QjtFQU1HO0VBQ0EsY21IM0RWO0VuSDBEVTtFQUNBLGlCbUgzRFY7QU40dUJsQjs7QTFHeHVCSTtFQUNJO0VBQ0E7RUFDQTtBMEcydUJSOztBRzF1Qkk7RUFDSTtBSDZ1QlI7O0FHMXVCSTtFQUNJO0FINnVCUjs7QUcxdUJJO0VBQ0k7QUg2dUJSOztBSTF2Qkk7RUFDSTtBSjZ2QlI7QTVHdHRCSTtFZ0hqQ1E7SUFPWTtFSm92QnRCO0FBQ0Y7QTVHM3RCSTtFZ0hoQmdCO0lBT1k7RUp3dUI5QjtBQUNGO0E1R2h1Qkk7RWdIaEJnQjtJQU9ZO0VKNnVCOUI7QUFDRjtBNUdqdkJJO0VnSEpnQjtJQUdZO0VKc3ZCOUI7QUFDRjtBNUcxdUJJO0VnSGpDUTtJQU9ZO0VKd3dCdEI7QUFDRjtBNUcvdUJJO0VnSGhCZ0I7SUFPWTtFSjR2QjlCO0FBQ0Y7QTVHaHdCSTtFZ0hKZ0I7SUFHWTtFSnF3QjlCO0FBQ0Y7QTVHenZCSTtFZ0hqQ1E7SUFPWTtFSnV4QnRCO0FBQ0Y7QTVHMXdCSTtFZ0hKZ0I7SUFHWTtFSit3QjlCO0FBQ0Y7QTVHL3dCSTtFZ0hyQlE7SUFHWTtFSnF5QnRCO0FBQ0Y7O0FJeHdCSTtFbEh4Q0E7RUFDQTtFQUNBO0E4R296Qko7O0FJMXdCSTtFbEhqQ0E7RUFDQTtFQUNBO0E4Ryt5Qko7O0FJNXdCSTtFQUNJO0FKK3dCUjs7QUk1d0JJO0VBQ0k7QUord0JSOztBSTV3Qkk7RUFDSTtBSit3QlI7O0FJNXdCSTtFQUNJO0FKK3dCUjs7QUk1d0JJO0VBQ0k7QUord0JSOztBSTV3Qkk7RUFDSTtBSit3QlI7O0FJNXdCSTtFQUNJO0FKK3dCUixDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9fY29sb3Iuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3Nob3AtdWkvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL19mb250LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9fZWZmZWN0LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9fei1pbmRleC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvX3NwYWNpbmcuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3Nob3AtdWkvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL19icmVha3BvaW50LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9fZ3JpZC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvX2ltcG9ydC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9fcmVzZXQuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3Nob3AtdWkvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvX2NvbG9yLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL19mb250LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL19lZmZlY3Quc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3Nob3AtdWkvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvX3Zpc2liaWxpdHkuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3Nob3AtdWkvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvX3NwYWNpbmcuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3Nob3AtdWkvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvX2JyZWFrcG9pbnQuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3Nob3AtdWkvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvX2dyaWQuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3Nob3AtdWkvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvX3VpLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL19pbXBvcnQuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvX2VmZmVjdC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3AvYWdlbnQtd2lkZ2V0L3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL0FnZW50V2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvYWdlbnQtbmF2aWdhdGlvbi9zdHlsZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvX2NvbG9yLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0FnZW50V2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvY3VzdG9tZXItbGlzdC9jdXN0b21lci1saXN0LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0FnZW50V2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9vcmdhbmlzbXMvYWdlbnQtY29udHJvbC1iYXIvYWdlbnQtY29udHJvbC1iYXIuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL2NhcnQtcGFnZS9zcmMvU3ByeWtlclNob3AvWXZlcy9DYXJ0UGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3Byb2R1Y3QtY2FydC1pdGVtL3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9jb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0L3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL0NvbmZpZ3VyYWJsZUJ1bmRsZU5vdGVXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9yZWFkb25seS1idW5kbGVkLW5vdGUvc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ29uZmlndXJhYmxlQnVuZGxlUGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbmZpZ3VyYXRvci1idXR0b24vY29uZmlndXJhdG9yLWJ1dHRvbi5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9Db25maWd1cmFibGVCdW5kbGVQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvY29uZmlndXJhdG9yLW1lc3NhZ2UvY29uZmlndXJhdG9yLW1lc3NhZ2Uuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ29uZmlndXJhYmxlQnVuZGxlUGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbmZpZ3VyYXRvci1wcm9kdWN0L2NvbmZpZ3VyYXRvci1wcm9kdWN0LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9fei1pbmRleC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvX2ZvbnQuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ29uZmlndXJhYmxlQnVuZGxlUGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsL2NvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0NvbmZpZ3VyYWJsZUJ1bmRsZVBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9zZWxlY3RlZC1wcm9kdWN0LWxpc3Qvc2VsZWN0ZWQtcHJvZHVjdC1saXN0LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0NvbmZpZ3VyYWJsZUJ1bmRsZVBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy90ZW1wbGF0ZS1saXN0L3RlbXBsYXRlLWxpc3Quc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ29uZmlndXJhYmxlQnVuZGxlV2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvY29uZmlndXJlZC1idW5kbGUvY29uZmlndXJlZC1idW5kbGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ29uZmlndXJhYmxlQnVuZGxlV2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdC9jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9jdXN0b21lci1wYWdlL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL0N1c3RvbWVyUGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL29yZGVyLWRldGFpbC10YWJsZS9zdHlsZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9GaWxlTWFuYWdlcldpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2ZpbGUtZG93bmxvYWQtbGluay9maWxlLWRvd25sb2FkLWxpbmsuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3BheW1lbnQtYXBwLXdpZGdldC9zcmMvU3ByeWtlclNob3AvWXZlcy9QYXltZW50QXBwV2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvcGF5cGFsLWJ1dHRvbnMvc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvUHJpY2VQcm9kdWN0Vm9sdW1lV2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvdm9sdW1lLXByaWNlL3ZvbHVtZS1wcmljZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9QcmljZVByb2R1Y3RWb2x1bWVXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy92b2x1bWUtcHJpY2UtdGFibGUvdm9sdW1lLXByaWNlLXRhYmxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Byb2R1Y3RCdW5kbGVXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9idW5kbGUtaXRlbXMvYnVuZGxlLWl0ZW1zLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Byb2R1Y3RDb21wYXJpc29uUGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbXBhcmlzb24tdGFibGUvY29tcGFyaXNvbi10YWJsZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9Qcm9kdWN0R3JvdXBXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9jb2xvci1zZWxlY3Rvci9jb2xvci1zZWxlY3Rvci5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9Qcm9kdWN0R3JvdXBXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3Rvci9wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3Rvci5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9Qcm9kdWN0R3JvdXBXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IvcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Byb2R1Y3RMYWJlbFdpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2ZsYWcvZmxhZy5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9Qcm9kdWN0TGFiZWxXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9sYWJlbC1ncm91cC9sYWJlbC1ncm91cC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9Qcm9kdWN0TGFiZWxXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy90YWcvdGFnLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9wcm9kdWN0LW9wdGlvbi13aWRnZXQvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvUHJvZHVjdE9wdGlvbldpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3Nob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC9zdHlsZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9Qcm9kdWN0UmV2aWV3V2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvcmF0aW5nLXNlbGVjdG9yL3JhdGluZy1zZWxlY3Rvci5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3AvcHJvZHVjdC1zZWFyY2gtd2lkZ2V0L3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Byb2R1Y3RTZWFyY2hXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9kdWN0LXF1aWNrLWFkZC1mb3JtL3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9wcm9kdWN0LXNlYXJjaC13aWRnZXQvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvUHJvZHVjdFNlYXJjaFdpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3Byb2R1Y3Qtc2VhcmNoLWl0ZW0vc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3Byb2R1Y3Qtc2VhcmNoLXdpZGdldC9zcmMvU3ByeWtlclNob3AvWXZlcy9Qcm9kdWN0U2VhcmNoV2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvcHJvZHVjdHMtbGlzdC9zdHlsZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9Qcm9kdWN0U2V0V2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9vcmdhbmlzbXMvcHJvZHVjdC1zZXQtY21zLWNvbnRlbnQvcHJvZHVjdC1zZXQtY21zLWNvbnRlbnQuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3NhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0L3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1NhbGVzQ29uZmlndXJhYmxlQnVuZGxlV2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvb3JkZXItY29uZmlndXJlZC1idW5kbGUvc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3NhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0L3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1NhbGVzQ29uZmlndXJhYmxlQnVuZGxlV2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdC9zdHlsZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TYWxlc0NvbmZpZ3VyYWJsZUJ1bmRsZVdpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL29yZGVyZWQtY29uZmlndXJlZC1idW5kbGUvb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TYWxlc0NvbmZpZ3VyYWJsZUJ1bmRsZVdpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL29yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdC9vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3Quc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvVGFic1dpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3NlYXJjaC10YWJzL3NlYXJjaC10YWJzLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1dpc2hsaXN0V2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvd2lzaGxpc3Qtc2VsZWN0b3Ivd2lzaGxpc3Qtc2VsZWN0b3Iuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci9tdWx0aS1mYWN0b3ItYXV0aC9zcmMvU3ByeWtlci9ZdmVzL011bHRpRmFjdG9yQXV0aC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL211bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50L3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0NhcnRQYWdlL1RoZW1lL2RlZmF1bHQvdGVtcGxhdGVzL3BhZ2UtbGF5b3V0LWNhcnQvcGFnZS1sYXlvdXQtY2FydC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9DaGVja291dFBhZ2UvVGhlbWUvZGVmYXVsdC90ZW1wbGF0ZXMvcGFnZS1sYXlvdXQtY2hlY2tvdXQvcGFnZS1sYXlvdXQtY2hlY2tvdXQuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ2hlY2tvdXRXaWRnZXQvVGhlbWUvZGVmYXVsdC92aWV3cy9jYXJ0LWNoZWNrb3V0LWJyZWFkY3J1bWIvY2FydC1jaGVja291dC1icmVhZGNydW1iLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0N1c3RvbWVyUGFnZS9UaGVtZS9kZWZhdWx0L3RlbXBsYXRlcy9wYWdlLWxheW91dC1jdXN0b21lci9wYWdlLWxheW91dC1jdXN0b21lci5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TYWxlc1JldHVyblBhZ2UvVGhlbWUvZGVmYXVsdC90ZW1wbGF0ZXMvcGFnZS1sYXlvdXQtc2FsZXMtcmV0dXJuL3BhZ2UtbGF5b3V0LXNhbGVzLXJldHVybi5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9BZ2VudFdpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2FnZW50LWNvbnRyb2wtaXRlbS9hZ2VudC1jb250cm9sLWl0ZW0uc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ2FydENvZGVXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9jYXJ0LWNvZGUtZm9ybS9jYXJ0LWNvZGUtZm9ybS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9DYXJ0Tm90ZVdpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2NhcnQtbm90ZS9jYXJ0LW5vdGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ2FydFBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9jYXJ0LWJveC9jYXJ0LWJveC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9DYXJ0UGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2NhcnQtc3VtbWFyeS9jYXJ0LXN1bW1hcnkuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ2hlY2tvdXRQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvY2hlY2tvdXQtYmxvY2svY2hlY2tvdXQtYmxvY2suc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ2hlY2tvdXRQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvaGVhZGluZy9oZWFkaW5nLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0NoZWNrb3V0UGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3BheW1lbnQtY2FyZC1pbmZvcm1hdGlvbi9wYXltZW50LWNhcmQtaW5mb3JtYXRpb24uc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ2hlY2tvdXRQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvc2hpcG1lbnQtc2lkZWJhci9zaGlwbWVudC1zaWRlYmFyLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0NoZWNrb3V0UGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3N1Y2Nlc3MtcGFnZS9zdWNjZXNzLXBhZ2Uuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ2hlY2tvdXRQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvc3VtbWFyeS1pdGVtL3N1bW1hcnktaXRlbS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9DaGVja291dFBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9zdW1tYXJ5LW92ZXJ2aWV3L3N1bW1hcnktb3ZlcnZpZXcuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ2hlY2tvdXRQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvc3VtbWFyeS1wYWdlL3N1bW1hcnktcGFnZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9DaGVja291dFBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9zdW1tYXJ5LXNpZGViYXIvc3VtbWFyeS1zaWRlYmFyLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0Ntc0Jsb2NrV2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvcHJvZHVjdC1jbXMtYmxvY2svcHJvZHVjdC1jbXMtYmxvY2suc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ21zU2VhcmNoUGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3NlYXJjaC1jbXMtcmVzdWx0cy9zZWFyY2gtY21zLXJlc3VsdHMuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ21zU2VhcmNoUGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3NlYXJjaC1jbXMtc29ydC9zZWFyY2gtY21zLXNvcnQuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ29uZmlndXJhYmxlQnVuZGxlTm90ZVdpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2NhcnQtY29uZmlndXJlZC1idW5kbGUtaXRlbS1ub3RlL2NhcnQtY29uZmlndXJlZC1idW5kbGUtaXRlbS1ub3RlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0NvbmZpZ3VyYWJsZUJ1bmRsZU5vdGVXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9jYXJ0LWNvbmZpZ3VyZWQtYnVuZGxlLWl0ZW0tbm90ZS1hY3Rpb25zL2NhcnQtY29uZmlndXJlZC1idW5kbGUtaXRlbS1ub3RlLWFjdGlvbnMuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ29uZmlndXJhYmxlQnVuZGxlUGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbmZpZ3VyYXRvci9jb25maWd1cmF0b3Iuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ29uZmlndXJhYmxlQnVuZGxlUGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbmZpZ3VyYXRvci1zaWRlYmFyL2NvbmZpZ3VyYXRvci1zaWRlYmFyLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0NvbmZpZ3VyYWJsZUJ1bmRsZVdpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbmZpZ3VyZWQtYnVuZGxlLXNlY29uZGFyeS9jb25maWd1cmVkLWJ1bmRsZS1zZWNvbmRhcnkuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ29uZmlndXJhYmxlQnVuZGxlV2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvY29uZmlndXJlZC1idW5kbGUtc2ltcGxlL2NvbmZpZ3VyZWQtYnVuZGxlLXNpbXBsZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9Db250ZW50QmFubmVyV2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvYmFubmVyLWp1bWJvdHJvbi9iYW5uZXItanVtYm90cm9uLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL05hdmlnYXRpb25XaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9uYXZpZ2F0aW9uLWhlYWRlci1tb2JpbGUvbmF2aWdhdGlvbi1oZWFkZXItbW9iaWxlLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0N1c3RvbWVyUGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL29yZGVyLWRldGFpbC1ibG9jay9vcmRlci1kZXRhaWwtYmxvY2suc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ3VzdG9tZXJQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvb3JkZXItZGV0YWlsLWhlYWRlci9vcmRlci1kZXRhaWwtaGVhZGVyLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL0N1c3RvbWVyUGFnZS9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL29yZGVyLXBheW1lbnQvb3JkZXItcGF5bWVudC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9DdXN0b21lclBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9vcmRlci1zdW1tYXJ5L29yZGVyLXN1bW1hcnkuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ3VzdG9tZXJQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvc2hpcG1lbnQtaW5mb3JtYXRpb24vc2hpcG1lbnQtaW5mb3JtYXRpb24uc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvQ3VzdG9tZXJQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvdGl0bGUtYm94L3RpdGxlLWJveC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9EaXNjb3VudFByb21vdGlvbldpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3ZhcmlhbnQvdmFyaWFudC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9EaXNjb3VudFdpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL2NhcnQtZGlzY291bnQtZm9ybS9jYXJ0LWRpc2NvdW50LWZvcm0uc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvR2lmdENhcmRXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9naWZ0LWNhcmQtcGF5bWVudC1zdW1tYXJ5L2dpZnQtY2FyZC1wYXltZW50LXN1bW1hcnkuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvTmV3c2xldHRlcldpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3N1YnNjcmlwdGlvbi1mb3JtL3N1YnNjcmlwdGlvbi1mb3JtLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Byb2R1Y3RCdW5kbGVXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9jYXJ0LWJ1bmRsZS1saXN0L2NhcnQtYnVuZGxlLWxpc3Quc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvUHJvZHVjdEdyb3VwV2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvY29sb3Itc2VsZWN0b3ItcGRwL2NvbG9yLXNlbGVjdG9yLXBkcC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9Qcm9kdWN0SW1hZ2VXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9pbWFnZS1nYWxsZXJ5L2ltYWdlLWdhbGxlcnkuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9ub2RlX21vZHVsZXMvc2xpY2stY2Fyb3VzZWwvc2xpY2svc2xpY2suc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvUHJvZHVjdEltYWdlV2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvaW1hZ2UtZ2FsbGVyeS10aHVtYm5haWwvaW1hZ2UtZ2FsbGVyeS10aHVtYm5haWwuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvUHJvZHVjdE9wdGlvbldpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3Byb2R1Y3Qtb3B0aW9ucy9wcm9kdWN0LW9wdGlvbnMuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvUHJvZHVjdFJldmlld1dpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3Jldmlldy1hdmVyYWdlLWRpc3BsYXkvcmV2aWV3LWF2ZXJhZ2UtZGlzcGxheS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9Qcm9kdWN0UmV2aWV3V2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvcmV2aWV3LWRpc3RyaWJ1dGlvbi1kaXNwbGF5L3Jldmlldy1kaXN0cmlidXRpb24tZGlzcGxheS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9Qcm9kdWN0UmV2aWV3V2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvcmV2aWV3L3Jldmlldy5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9Qcm9kdWN0UmV2aWV3V2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9vcmdhbmlzbXMvcmV2aWV3LXN1bW1hcnkvcmV2aWV3LXN1bW1hcnkuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvUHJvZHVjdFNldExpc3RQYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9vcmdhbmlzbXMvc2V0LWxpc3Qvc2V0LWxpc3Quc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvUHJvZHVjdFNldFdpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL3Byb2R1Y3Qtc2V0LXNsaWRlci9wcm9kdWN0LXNldC1zbGlkZXIuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2FsZXNDb25maWd1cmFibGVCdW5kbGVXaWRnZXQvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3Qtc2Vjb25kYXJ5L29yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdC1zZWNvbmRhcnkuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2FsZXNQcm9kdWN0QnVuZGxlV2lkZ2V0L1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvb3JkZXJlZC1idW5kbGUtaXRlbS9vcmRlcmVkLWJ1bmRsZS1pdGVtLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1NhbGVzUHJvZHVjdEJ1bmRsZVdpZGdldC9UaGVtZS9kZWZhdWx0L2NvbXBvbmVudHMvbW9sZWN1bGVzL29yZGVyZWQtcHJvZHVjdC1idW5kbGUvb3JkZXJlZC1wcm9kdWN0LWJ1bmRsZS5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TYWxlc1JldHVyblBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9yZXR1cm4taGVhZGVyLWluZm9ybWF0aW9uL3JldHVybi1oZWFkZXItaW5mb3JtYXRpb24uc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2FsZXNSZXR1cm5QYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvcmV0dXJuLWxpc3QtdGl0bGUvcmV0dXJuLWxpc3QtdGl0bGUuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2FsZXNSZXR1cm5QYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvcmV0dXJuLW92ZXJ2aWV3L3JldHVybi1vdmVydmlldy5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TYWxlc1JldHVyblBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9yZXR1cm4tcHJvZHVjdC1pdGVtL3JldHVybi1wcm9kdWN0LWl0ZW0uc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2FsZXNSZXR1cm5QYWdlL1RoZW1lL2RlZmF1bHQvY29tcG9uZW50cy9tb2xlY3VsZXMvcmV0dXJuLXRpdGxlLWJsb2NrL3JldHVybi10aXRsZS1ibG9jay5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3NyYy9QeXovWXZlcy9TYWxlc1JldHVyblBhZ2UvVGhlbWUvZGVmYXVsdC9jb21wb25lbnRzL21vbGVjdWxlcy9yZXR1cm4tdG90YWwvcmV0dXJuLXRvdGFsLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy91dGlsLnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vdmVuZG9yL3NwcnlrZXItc2hvcC9zaG9wLXVpL3NyYy9TcHJ5a2VyU2hvcC9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy91dGlscy9fc3BhY2luZy5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvdXRpbHMvX3RleHQuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi92ZW5kb3Ivc3ByeWtlci1zaG9wL3Nob3AtdWkvc3JjL1NwcnlrZXJTaG9wL1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3V0aWxzL19mbG9hdC5zY3NzIiwid2VicGFjazovL3NwcnlrZXItYjJjLWRlbW8tc2hvcC8uL3ZlbmRvci9zcHJ5a2VyLXNob3Avc2hvcC11aS9zcmMvU3ByeWtlclNob3AvWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvdXRpbHMvX3Zpc2liaWxpdHkuc2NzcyIsIndlYnBhY2s6Ly9zcHJ5a2VyLWIyYy1kZW1vLXNob3AvLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3V0aWxzL190ZXh0LnNjc3MiLCJ3ZWJwYWNrOi8vc3ByeWtlci1iMmMtZGVtby1zaG9wLy4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9fc3BhY2luZy5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRGVmaW5lcyB0aGUgbWFpbiBjb2xvciBvZiB0aGUgc2hvcCB0aGVtZS4gVXNhZ2U6IHByaW1hcnkgZWxlbWVudHMnIGJhY2tncm91bmQgYW5kIGNvbG9yLlxuICovXG4kc2V0dGluZy1jb2xvci1tYWluOiAjMTQ3OWJkICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgYWx0ZXJuYXRpdmUgY29sb3Igb2YgdGhlIHNob3AgdGhlbWUuIFVzYWdlOiBzZWNvbmRhcnkgZWxlbWVudHMnIGJhY2tncm91bmQgYW5kIGNvbG9yLlxuICovXG4kc2V0dGluZy1jb2xvci1hbHQ6ICNlMjY5NGEgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyB3aGl0ZSBjb2xvci4gVXNhZ2U6IG5vdCB0cmFuc3BhcmVudCBlbGVtZW50cycgYmFja2dyb3VuZCBvZiBkZWZhdWx0IGJhY2tncm91bmQuXG4gKi9cbiRzZXR0aW5nLWNvbG9yLXdoaXRlOiAjZmZmZmZmICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgYSBsaWdodCBzaGFkZSBjb2xvci4gVXNhZ2U6IGVsZW1lbnRzJyBiYWNrZ3JvdW5kLCBib3JkZXJzIGFuZCB0ZXh0LlxuICovXG4kc2V0dGluZy1jb2xvci1saWdodDogI2RhZGFkYSAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIGEgbGlnaHRlciBzaGFkZSBjb2xvci4gVXNhZ2U6IGVsZW1lbnRzJyBiYWNrZ3JvdW5kLCBib3JkZXJzIGFuZCB0ZXh0LlxuICovXG4kc2V0dGluZy1jb2xvci1saWdodGVyOiAjZjBmMGYwICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgdGhlIGxpZ2h0ZXN0IHNoYWRlIGNvbG9yLiBVc2FnZTogZWxlbWVudHMnIGJhY2tncm91bmQsIGJvcmRlcnMgYW5kIHRleHQuXG4gKi9cbiRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0OiAjZjRmNGY0ICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgdGhlIHNoYWRlIG9mIHRoZSBibGFjayBjb2xvci4gVXNhZ2U6IGFzIGEgYmFzZSBvZiBibGFjayBjb2xvciBmb3Igc2VtaS10cmFuc3BhcmVudCBlbGVtZW50cy5cbiAqL1xuJHNldHRpbmctY29sb3ItYmxhY2s6ICMwMDAwMDAgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyBhIGRhcmsgc2hhZGUgY29sb3IuIFVzYWdlOiBlbGVtZW50cycgdGV4dCBjb2xvciB2YXJpYW50LlxuICovXG4kc2V0dGluZy1jb2xvci1kYXJrOiAjYmJiYmJiICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgYSBkYXJrZXIgc2hhZGUgY29sb3IuIFVzYWdlOiBlbGVtZW50cycgdGV4dCBjb2xvciB2YXJpYW50LlxuICovXG4kc2V0dGluZy1jb2xvci1kYXJrZXI6ICM1OTU5NTkgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyB0aGUgZGFya2VzdCBzaGFkZSBjb2xvci4gVXNhZ2U6IGVsZW1lbnRzJyB0ZXh0IGNvbG9yIHZhcmlhbnQuXG4gKi9cbiRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q6ICMzMzMzMzMgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyBhIHRyYW5zcGFyZW50IGNvbG9yLiBVc2FnZTogZWxlbWVudHMnIGJhY2tncm91bmQsIGJvcmRlci5cbiAqL1xuJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ6IHJnYmEoJHNldHRpbmctY29sb3Itd2hpdGUsIDApICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgdGhlIG1haW4gYmFja2dyb3VuZCBjb2xvci4gVXNhZ2U6IGJvZHkgYW5kIHNpZGUtZHJhd2VyIGJhY2tncm91bmQuXG4gKi9cbiRzZXR0aW5nLWNvbG9yLWJnOiAkc2V0dGluZy1jb2xvci13aGl0ZSAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBtYWluIGNvbG9yIG9mIHRleHQuIFVzYWdlOiBkZWZhdWx0IGdsb2JhbCB0ZXh0IGNvbG9yLlxuICovXG4kc2V0dGluZy1jb2xvci10ZXh0OiAkc2V0dGluZy1jb2xvci1kYXJrZXN0ICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgYSBkZWZhdWx0IGdsb2JhbCBib3JkZXIgY29sb3IgZm9yIHRoZSBpbnB1dCBlbGVtZW50cy5cbiAqL1xuJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyOiAkc2V0dGluZy1jb2xvci1saWdodCAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIGEgZGVmYXVsdCBnbG9iYWwgYm9yZGVyIGNvbG9yIGZvciB0aGUgaW5wdXQgZWxlbWVudHMgb24gZm9jdXMgZXZlbnQuXG4gKi9cbiRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1czogJHNldHRpbmctY29sb3ItZGFyayAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIGEgc2hhZG93IHNoYWRlIGFuZCB0cmFuc3BhcmVuY3kgZm9yIHRoZSBzaGFkb3dlZCBlbGVtZW50cy5cbiAqL1xuJHNldHRpbmctY29sb3Itc2hhZG93OiByZ2JhKCRzZXR0aW5nLWNvbG9yLWJsYWNrLCAwLjEpICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgYSBkZWZhdWx0IG92ZXJsYXkgY29sb3IuIFVzYWdlOiBlbGVtZW50cyB3aXRoIG92ZXJsYXkgLSBzaWRlLWRyYXdlciwgcG9wdXBzIGV0Yy5cbiAqL1xuJHNldHRpbmctY29sb3Itb3ZlcmxheTogcmdiYSgkc2V0dGluZy1jb2xvci1ibGFjaywgMC4zKSAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIGEgZGVmYXVsdCBpbWFnZSBvdmVybGF5IGNvbG9yLiBVc2FnZTogaW1hZ2VzIHdpdGggb3ZlcmxheSAtIGxhenktaW1hZ2UuXG4gKi9cbiRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk6IHJnYmEoJHNldHRpbmctY29sb3ItYmxhY2ssIDAuMDUpICFkZWZhdWx0O1xuXG4kc2V0dGluZy1jb2xvci1saWdodC1ibHVlOiAjZWFmMWZhO1xuXG4kc2V0dGluZy1jb2xvci1ibHVlOiAjMDA2NGI0O1xuXG4vKipcbiAqIERlZmluZXMgYWN0aW9uIGNvbG9ycyBtYXAuXG4gKi9cbiRzZXR0aW5nLWNvbG9yLWFjdGlvbnM6IChcbiAgICBzdWNjZXNzOiAjMmM4MTY4LFxuICAgIHdhcm5pbmc6ICNmMjkxMzMsXG4gICAgYWxlcnQ6ICNiMjE3MWEsXG4pICFkZWZhdWx0O1xuIiwiLyoqXG4gKiBEZWZpbmVzIGZvbnQgZmFtaWx5IHNldHRpbmcuIFVzYWdlOiBib2R5IGdsb2JhbCBmb250IHN0eWxlcy5cbiAqL1xuJHNldHRpbmctZm9udC1mYW1pbHk6ICdBcmlhbCcsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyBmb250IGZhbWlseSBzZXR0aW5nIGZvciBjb2RlLiBDYW4gYmUgdXNlZCBmb3IgY29kZSBhbmQgcHJlIGVsZW1lbnRzLlxuICovXG4kc2V0dGluZy1mb250LWZhbWlseS1jb2RlOiAnTWVubG8nLCBtb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8qKlxuICogRGVmaW5lcyBiYXNpYyBmb250IHNpemUuIFVzYWdlOiBnbG9iYWwgYmFzaWMgZm9udCBzaXplLlxuICovXG4kc2V0dGluZy1mb250LXNpemUtYmFzZTogMTZweCAhZGVmYXVsdDtcblxuLyoqXG4gKiBGb250IHNpemUgdmFsdWVzIG1hcC4gVXNhZ2U6IG1peGlucyBwcm92aWRpbmcgc3R5bGVzIGZvciBoZWFkaW5ncywgdGV4dCBlbGVtZW50cyBldGMuXG4gKi9cbiRzZXR0aW5nLWZvbnQtc2l6ZTogKFxuICAgIDE6IDM4cHgsXG4gICAgMjogMzRweCxcbiAgICAzOiAzMHB4LFxuICAgIDQ6IDI2cHgsXG4gICAgNTogMjJweCxcbiAgICA2OiAxOHB4LFxuICAgIGJpZzogMTZweCxcbiAgICBkZWZhdWx0OiAxNHB4LFxuICAgIHNtYWxsOiAxMnB4LFxuKSAhZGVmYXVsdDtcblxuLyoqXG4gKiBGb250IHdlaWdodCB2YWx1ZXMgbWFwLiBVc2FnZTogbWl4aW4gdG8gc2V0IGZvbnQgd2VpZ2h0IHByb3BlcnR5LlxuICovXG4kc2V0dGluZy1mb250LXdlaWdodDogKFxuICAgIGxpZ2h0OiAzMDAsXG4gICAgcmVndWxhcjogNDAwLFxuICAgIGJvbGQ6IDkwMCxcbikgIWRlZmF1bHQ7XG5cbi8qKlxuICogRm9udCBsaW5lIGhlaWdodCB2YWx1ZXMgbWFwLiBVc2FnZTogbWl4aW5zIHByb3ZpZGluZyBzdHlsZXMgZm9yIGhlYWRpbmdzLCB0ZXh0IGVsZW1lbnRzIGV0Yy5cbiAqL1xuJHNldHRpbmctZm9udC1saW5lLWhlaWdodDogKFxuICAgIDE6IDEuMSxcbiAgICAyOiAxLjIsXG4gICAgMzogMS40LFxuICAgIDQ6IDEuNCxcbiAgICA1OiAxLjQsXG4gICAgNjogMS40LFxuICAgIGRlZmF1bHQ6IDEuNSxcbiAgICB0aWdodDogMS4xLFxuKSAhZGVmYXVsdDtcbiIsIi8qKlxuICogRGVmaW5lcyBhIGRlZmF1bHQgZHVyYXRpb24gdmFsdWUgZm9yIHRoZSBhbmltYXRpb24gZWZmZWN0cy4gVXNhZ2U6IG1peGlucyBwcm92aWRpbmcgYW5pbWF0aW9uIHByb3BlcnRpZXMuXG4gKi9cbiRzZXR0aW5nLWVmZmVjdC1kZWZhdWx0LWR1cmF0aW9uOiAyNTBtcyAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIGEgZGVmYXVsdCB0aW1pbmcgZnVuY3Rpb24gZm9yIHRoZSBhbmltYXRpb24gZWZmZWN0cy4gVXNhZ2U6IG1peGlucyBwcm92aWRpbmcgYW5pbWF0aW9uIHByb3BlcnRpZXMuXG4gKi9cbiRzZXR0aW5nLWVmZmVjdC1kZWZhdWx0LWVhc2U6IGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuIiwiLyoqXG4gKiBEZWZpbmVzIGRlZmF1bHQgei1pbmRleCB2YWx1ZS5cbiAqL1xuJHNldHRpbmctemktZWxlbWVudDogMSAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIHotaW5kZXggdmFsdWUgZm9yIGFqYXggZHluYW1pYyBsb2FkZXIuXG4gKi9cbiRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI6IDMwMCAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIHotaW5kZXggdmFsdWUgZm9yIHRoZSBmbG9hdGluZyBlbGVtZW50cy5cbiAqL1xuJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZzogMzUwICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgei1pbmRleCB2YWx1ZSBmb3IgdGhlIGhlYWRlciBjb250ZXh0LlxuICovXG4kc2V0dGluZy16aS1oZWFkZXI6IDQwMCAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIHotaW5kZXggdmFsdWUgZm9yIHRoZSBzaWRlIGRyYXdlciBjb250ZXh0LlxuICovXG4kc2V0dGluZy16aS1zaWRlLWRyYXdlcjogNTAwICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgei1pbmRleCB2YWx1ZSBmb3IgdGhlIHBvcHVwLlxuICovXG4kc2V0dGluZy16aS1wb3B1cDogNTUwICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgei1pbmRleCB2YWx1ZSBmb3IgdGhlIG92ZXJsYXkuXG4gKi9cbiRzZXR0aW5nLXppLW92ZXJsYXk6IDU1MCAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIHotaW5kZXggdmFsdWUgZm9yIHRoZSBub3RpZmljYXRpb24gYXJlYSBjb250ZXh0LlxuICovXG4kc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTogNjAwICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgei1pbmRleCB2YWx1ZSBmb3IgdGhlIHNlYXJjaCBzdWdnZXN0aW9ucyBjb250ZXh0LlxuICovXG4kc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnM6IDcwMCAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIHotaW5kZXggdmFsdWUgZm9yIHRoZSBhamF4IGxvYWRlci5cbiAqL1xuJHNldHRpbmctemktYWpheC1sb2FkZXI6IDc1MCAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIHotaW5kZXggdmFsdWUgZm9yIHRoZSB0b3AgbmF2aWdhdGlvbiBjb250ZXh0LlxuICovXG4kc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDogODAwICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgei1pbmRleCB2YWx1ZSBmb3IgdGhlIHNraXAgdG8gY29udGVudCBsaW5rIGNvbnRleHQuXG4gKi9cbiRzZXR0aW5nLXppLXNraXAtbGluazogOTAwICFkZWZhdWx0O1xuXG4vKipcbiAqIERlZmluZXMgei1pbmRleCB2YWx1ZSBmb3IgbGF5ZXIgdW5kZXIgbWFpbiBjb250ZW50LlxuICovXG4kc2V0dGluZy16aS11bmRlci1sYXllcjogLTEgIWRlZmF1bHQ7XG4iLCIvKipcbiAqIERlZmluZXMgc3BhY2luZyB2YWx1ZXMgbWFwLiBVc2FnZTogc3BhY2luZyBoZWxwZXJzIGFuZCBtaXhpbnMuXG4gKi9cbiRzZXR0aW5nLXNwYWNpbmc6IChcbiAgICBiaWc6IDFyZW0sXG4gICAgZGVmYXVsdDogMC41cmVtLFxuICAgIHNtYWxsOiAwLjI1cmVtLFxuICAgIHJlc2V0OiAwLFxuKSAhZGVmYXVsdDtcbiIsIi8qKlxuICogRGVmaW5lcyBicmVha3BvaW50cycgdmFsdWVzIGZvciByZXNwb25zaXZlLlxuICovXG4kc2V0dGluZy1icmVha3BvaW50czogKFxuICAgIHNtOiAoXG4gICAgICAgIDAsXG4gICAgICAgIDU0OXB4LFxuICAgICksXG4gICAgbWQ6IChcbiAgICAgICAgNTUwcHgsXG4gICAgICAgIDc2OXB4LFxuICAgICksXG4gICAgbGc6IChcbiAgICAgICAgNzcwcHgsXG4gICAgICAgIDk2OXB4LFxuICAgICksXG4gICAgeGw6IChcbiAgICAgICAgOTcwcHgsXG4gICAgKSxcbikgIWRlZmF1bHQ7XG4iLCIvKipcbiAqIERlZmluZXMgZ3JpZCBzeXN0ZW0gY29sdW1ucyBjb3VudC5cbiAqL1xuJHNldHRpbmctZ3JpZC1jb2x1bW5zOiAxMiAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIGdyaWQgY29udGFpbmVyIG1heCB3aWR0aC5cbiAqL1xuJHNldHRpbmctZ3JpZC1tYXgtd2lkdGg6IDExNjBweCAhZGVmYXVsdDtcblxuLyoqXG4gKiBEZWZpbmVzIGd1dHRlcnMnIHNpemUgZm9yIGdyaWQgXCJ3aXRoLWd1dHRlclwiIG1vZGlmaWVyLlxuICovXG4kc2V0dGluZy1ncmlkLWd1dHRlcjogMCAhZGVmYXVsdDtcbiIsIi8qKlxuICogRGVmaW5lcyBpbXBvcnQgYmxhY2tsaXN0LiBVc2FnZTogaW1wb3J0IGhlbHBlci5cbiAqL1xuJHNldHRpbmctaW1wb3J0LWJsYWNrbGlzdDogKCk7XG4iLCIvKipcbiAqIFByb3ZpZGVzIGxpc3Qgb2YgcHJvcGVyaWVzIGZvciByZXNldCB1c2FnZS5cbiAqL1xuQG1peGluIGhlbHBlci1yZXNldCB7XG4gICAgLy8gaHR0cHM6Ly93d3cucGF1bGlyaXNoLmNvbS8yMDEyL2JveC1zaXppbmctYm9yZGVyLWJveC1mdHcvXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgZm9udDogaW5oZXJpdDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3Itd2hpdGUsIDApO1xuXG4gICAgQGNvbnRlbnQ7XG59XG4iLCIvKipcbiAqIFdyYXBwZXIgZnVuY3Rpb24gZm9yIHRoZSBkYXJrZW4gc2FzcyBmdW5jdGlvbiB3aXRoIGEgZGVmYXVsdCBkZWdyZWUgcGFyYW1ldGVyLlxuICogQHBhcmFtIHtDb2xvcn0gJHNldHRpbmctY29sb3JcbiAqIEBwYXJhbSB7TnVtYmVyfSAkZGVncmVlIFsxMF1cbiAqL1xuQGZ1bmN0aW9uIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLCAkZGVncmVlOiAxMCkge1xuICAgIEByZXR1cm4gZGFya2VuKCRzZXR0aW5nLWNvbG9yLCAkZGVncmVlKTtcbn1cblxuLyoqXG4gKiBXcmFwcGVyIGZ1bmN0aW9uIGZvciB0aGUgbGlnaHRlbiBzYXNzIGZ1bmN0aW9uIHdpdGggYSBkZWZhdWx0IGRlZ3JlZSBwYXJhbWV0ZXIuXG4gKiBAcGFyYW0ge0NvbG9yfSAkc2V0dGluZy1jb2xvclxuICogQHBhcmFtIHtOdW1iZXJ9ICRkZWdyZWUgWzEwXVxuICovXG5AZnVuY3Rpb24gaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLCAkZGVncmVlOiAzNSkge1xuICAgIEByZXR1cm4gbGlnaHRlbigkc2V0dGluZy1jb2xvciwgJGRlZ3JlZSk7XG59XG4iLCIvKipcbiAqIFNldHMgZm9udC1zaXplIHByb3BlcnR5IGZyb20gZm9udCBzaXplIHNldHRpbmdzIG1hcCAtICRzZXR0aW5nLWZvbnQtc2l6ZSBhY2NvcmRpbmcgdG8gdGhlIHBhc3NlZCBtYXAga2V5LlxuICogQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICRzaXplXG4gKi9cbkBtaXhpbiBoZWxwZXItZm9udC1zaXplKCRzaXplKSB7XG4gICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJHNpemUpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogU2V0cyBmb250LXdlaWdodCBwcm9wZXJ0eSBmcm9tIGZvbnQgd2VpZ2h0IHNldHRpbmdzIG1hcCAtICRzZXR0aW5nLWZvbnQtd2VpZ2h0IGFjY29yZGluZyB0byB0aGUgcGFzc2VkIG1hcCBrZXkuXG4gKiBAcGFyYW0ge1N0cmluZ30gJHdlaWdodFxuICovXG5AbWl4aW4gaGVscGVyLWZvbnQtd2VpZ2h0KCR3ZWlnaHQpIHtcbiAgICBmb250LXdlaWdodDogbWFwLWdldCgkc2V0dGluZy1mb250LXdlaWdodCwgJHdlaWdodCk7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBTZXRzIGxpbmUtaGVpZ2h0IHByb3BlcnR5IGZyb20gbGluZS1oZWlnaHQgc2V0dGluZ3MgbWFwIC0gJHNldHRpbmctZm9udC1saW5lLWhlaWdodCBhY2NvcmRpbmcgdG8gdGhlIHBhc3NlZCBtYXAga2V5LlxuICogQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICRoZWlnaHRcbiAqL1xuQG1peGluIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRoZWlnaHQpIHtcbiAgICBsaW5lLWhlaWdodDogbWFwLWdldCgkc2V0dGluZy1mb250LWxpbmUtaGVpZ2h0LCAkaGVpZ2h0KTtcblxuICAgIEBjb250ZW50O1xufVxuIiwiLyoqXG4gKiBQb3ZpZGVzIHRyYW5zaXRpb24gcHJvcGVydHkgY29uZmlndXJlZCBieSB0aGUgcGFzc2VkIHBhcmFtZXRlcnMuXG4gKiBAcGFyYW0ge1N0cmluZ30gJHByb3BzXG4gKiBAcGFyYW0ge051bWJlcn0gJGR1cmF0aW9uIFskc2V0dGluZy1lZmZlY3QtZGVmYXVsdC1kdXJhdGlvbl1cbiAqIEBwYXJhbSB7U3RyaW5nfSAkZWFzZSBbJHNldHRpbmctZWZmZWN0LWRlZmF1bHQtZWFzZV1cbiAqL1xuQG1peGluIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihcbiAgICAkcHJvcHM6IG9wYWNpdHkgdmlzaWJpbGl0eSxcbiAgICAkZHVyYXRpb246ICRzZXR0aW5nLWVmZmVjdC1kZWZhdWx0LWR1cmF0aW9uLFxuICAgICRlYXNlOiAkc2V0dGluZy1lZmZlY3QtZGVmYXVsdC1lYXNlXG4pIHtcbiAgICAkdHJhbnNpdGlvbjogbnVsbDtcblxuICAgIEBlYWNoICRwcm9wIGluICRwcm9wcyB7XG4gICAgICAgICR0cmFuc2l0aW9uOiAkcHJvcCAkZHVyYXRpb24gJGVhc2UsICR0cmFuc2l0aW9uO1xuICAgIH1cbiAgICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbjtcblxuICAgIEBjb250ZW50O1xufVxuIiwiLyoqXG4gKiBGb3JjZXMgZWxlbWVudCB2aXNpYmlsaXR5LlxuICovXG5AbWl4aW4gaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZSB7XG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDE7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBGb3JjZXMgZWxlbWVudCBpbnZpc2liaWxpdHkuXG4gKi9cbkBtaXhpbiBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGUge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBvcGFjaXR5OiAwO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogRm9yY2VzIGVsZW1lbnQgaW52aXNpYmlsaXR5IHdpdGggYWNjZXNzaWJpbGl0eSBzdXBwb3J0LlxuICovXG5AbWl4aW4gaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGUge1xuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBGb3JjZXMgZWxlbWVudCB2aXNpYmlsaXR5IHdpdGggYWNjZXNzaWJpbGl0eSBzdXBwb3J0LlxuICovXG5AbWl4aW4gaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlIHtcbiAgICBjbGlwOiBhdXRvO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuXG4gICAgQGNvbnRlbnQ7XG59XG4iLCIvKipcbiAqIFByb3ZpZGVzIGdsb2JhbCBjbGFzcyBuYW1lcyB3aXRoIHNwYWNpbmcgcHJvcGVydGllcyBzZXQgZnJvbSAkc2V0dGluZy1zcGFjaW5nIG1hcC5cbiAqIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSBNYWluIHNlbGVjdG9yIG5hbWUuXG4gKiBAcGFyYW0ge0xpc3R9ICRzaWRlcyBbW11dIExpc3Qgb2Ygc2lkZXMgdG8gc2V0IHByb3BlcnRpZXMuXG4gKi9cbkBtaXhpbiBoZWxwZXItc3BhY2luZygkbmFtZSwgJHNpZGVzOiBbXSkge1xuICAgIEBpbmNsdWRlIGhlbHBlci1zcGFjaW5nLW91dGVyKCRuYW1lLCAkc2lkZXMpO1xuICAgIEBpbmNsdWRlIGhlbHBlci1zcGFjaW5nLWlubmVyKCRuYW1lLCAkc2lkZXMpO1xufVxuXG5AbWl4aW4gaGVscGVyLXNwYWNpbmctb3V0ZXIoJG5hbWUsICRzaWRlcykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJHNwYWNpbmctbmFtZSwgJHNwYWNpbmctdmFsdWUgaW4gJHNldHRpbmctc3BhY2luZyB7XG4gICAgICAgICAgICBAaWYgJHNwYWNpbmctbmFtZSA9PSAnZGVmYXVsdCcge1xuICAgICAgICAgICAgICAgIEBpZiBsZW5ndGgoJHNpZGVzKSA9PSAwIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAkc3BhY2luZy12YWx1ZTtcbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgQGVhY2ggJHNpZGUgaW4gJHNpZGVzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi0jeyRzaWRlfTogJHNwYWNpbmctdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAmLS0jeyRzcGFjaW5nLW5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGlmIGxlbmd0aCgkc2lkZXMpID09IDAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAkc3BhY2luZy12YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAZWFjaCAkc2lkZSBpbiAkc2lkZXMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi0jeyRzaWRlfTogJHNwYWNpbmctdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBoZWxwZXItc3BhY2luZy1pbm5lcigkbmFtZSwgJHNpZGVzKSB7XG4gICAgI3skbmFtZX0tLWlubmVyIHtcbiAgICAgICAgQGVhY2ggJHNwYWNpbmctbmFtZSwgJHNwYWNpbmctdmFsdWUgaW4gJHNldHRpbmctc3BhY2luZyB7XG4gICAgICAgICAgICBAaWYgJHNwYWNpbmctbmFtZSA9PSAnZGVmYXVsdCcge1xuICAgICAgICAgICAgICAgIEBpZiBsZW5ndGgoJHNpZGVzKSA9PSAwIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAkc3BhY2luZy12YWx1ZTtcbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgQGVhY2ggJHNpZGUgaW4gJHNpZGVzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi0jeyRzaWRlfTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctI3skc2lkZX06ICRzcGFjaW5nLXZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgQGF0LXJvb3QgI3skbmFtZX0tLWlubmVyI3skbmFtZX0tLSN7JHNwYWNpbmctbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaWYgbGVuZ3RoKCRzaWRlcykgPT0gMCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAkc3BhY2luZy12YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAZWFjaCAkc2lkZSBpbiAkc2lkZXMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi0jeyRzaWRlfTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLSN7JHNpZGV9OiAkc3BhY2luZy12YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cbiIsIi8qKlxuICogUmV0dXJucyAwIG9yIHRoZSBmaXJzdCB2YWx1ZSBmcm9tIHRoZSAkZWRnZXMgbGlzdC5cbiAqIEBwYXJhbSB7TGlzdH0gJGVkZ2VzIFskc2V0dGluZy1icmVha3BvaW50c10gTGlzdCBsZW5ndGggbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMi5cbiAqIEByZXR1cm4ge0Jhc2V9XG4gKi9cbkBmdW5jdGlvbiBoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbigkZWRnZXMpIHtcbiAgICBAaWYgbGVuZ3RoKCRlZGdlcykgPiAwIHtcbiAgICAgICAgQHJldHVybiBudGgoJGVkZ2VzLCAxKTtcbiAgICB9XG5cbiAgICBAcmV0dXJuIDA7XG59XG5cbi8qKlxuICogUmV0dXJucyBudWxsIG9yIHRoZSBsYXN0IHZhbHVlIGZyb20gdGhlICRlZGdlcyBsaXN0LlxuICogQHBhcmFtIHtMaXN0fSAkZWRnZXMgWyRzZXR0aW5nLWJyZWFrcG9pbnRzXSBMaXN0IGxlbmd0aCBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAyLlxuICogQHJldHVybiB7QmFzZX1cbiAqL1xuQGZ1bmN0aW9uIGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWF4KCRlZGdlcykge1xuICAgIEBpZiBsZW5ndGgoJGVkZ2VzKSA+IDEge1xuICAgICAgICBAcmV0dXJuIG50aCgkZWRnZXMsIDIpO1xuICAgIH1cblxuICAgIEByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBTZXRzIHNjcmVlbiBtZWRpYSBxdWVyeSB3aXRoIG1pbi13aWR0aCBzZXQgdG8gJG1pbiBwYXJhbWV0ZXIuXG4gKiBAcGFyYW0gJG1pbiB7TnVtYmVyfSBbMF1cbiAqIEBjb250ZW50IEV4dGVuZHMgbWl4aW4gd2l0aCBwcm9wZXJ0aWVzIGZvciBtZWRpYSBxdWVyeS5cbiAqL1xuQG1peGluIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbWluOiAwKSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBTZXRzIHNjcmVlbiBtZWRpYSBxdWVyeSB3aXRoIGJyZWFrcG9pbnRzIHJhbmdlIHBhc3NlZCBhcyBwYXJhbWV0ZXJzLlxuICogQHBhcmFtIHtOdW1iZXJ9ICRtaW4gWzBdXG4gKiBAcGFyYW0ge051bWJlcn0gJG1heCBbJHNldHRpbmctZ3JpZC1tYXgtd2lkdGhdXG4gKiBAY29udGVudCBFeHRlbmRzIG1peGluIHdpdGggcHJvcGVydGllcyBmb3IgbWVkaWEgcXVlcnkuXG4gKi9cbkBtaXhpbiBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1iZXR3ZWVuKCRtaW46IDAsICRtYXg6ICRzZXR0aW5nLWdyaWQtbWF4LXdpZHRoKSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogU2V0cyBzY3JlZW4gbWVkaWEgcXVlcnkgd2l0aCBtYXgtd2lkdGggc2V0IHRvICRtYXggcGFyYW1ldGVyLlxuICogQHBhcmFtIHtOdW1iZXJ9ICRtYXggWyRzZXR0aW5nLWdyaWQtbWF4LXdpZHRoXVxuICogQGNvbnRlbnQgRXh0ZW5kcyBtaXhpbiB3aXRoIHByb3BlcnRpZXMgZm9yIG1lZGlhIHF1ZXJ5LlxuICovXG5AbWl4aW4gaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWF4KCRtYXg6ICRzZXR0aW5nLWdyaWQtbWF4LXdpZHRoKSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBTZXRzIHNjcmVlbiBtZWRpYSBxdWVyeSB3aXRoIGJyZWFrcG9pbnRzIHJhbmdlIHBhc3NlZCB0byBwYXJhbWV0ZXJzIG9yXG4gKiB3aXRoIG1pbi13aWR0aCBxdWVyeSBpZiBvbmx5IG9uZSBwYXJhbWV0ZXIgaXMgcGFzc2VkLlxuICogQHBhcmFtIHtOdW1iZXJ9ICRtYXggWyRzZXR0aW5nLWdyaWQtbWF4LXdpZHRoXVxuICogQGNvbnRlbnQgRXh0ZW5kcyBtaXhpbiB3aXRoIHByb3BlcnRpZXMgZm9yIG1lZGlhIHF1ZXJ5LlxuICovXG5AbWl4aW4gaGVscGVyLWJyZWFrcG9pbnQoJG1pbi1icCwgJG1heC1icDogbnVsbCkge1xuICAgICRlZGdlcy1taW46IG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsICRtaW4tYnApO1xuICAgICRlZGdlLW1pbjogaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4oJGVkZ2VzLW1pbik7XG5cbiAgICBAaWYgJG1heC1icCA9PSBudWxsIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRlZGdlLW1pbikge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgJGVkZ2VzLW1heDogbWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgJG1heC1icCk7XG4gICAgICAgICRlZGdlLW1heDogaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1tYXgoJGVkZ2VzLW1heCk7XG5cbiAgICAgICAgQGlmICRlZGdlLW1heCA9PSBudWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkZWRnZS1taW4pIHtcbiAgICAgICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1iZXR3ZWVuKCRlZGdlLW1pbiwgJGVkZ2UtbWF4KSB7XG4gICAgICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIFJldHVybnMgY29sdW1uIHJhdGlvIGluIHJlbGF0aW9uIHRvIGNvbHVtbnMgY291bnQuXG4gKiBAcGFyYW0ge051bWJlcn0gJGNvbHVtblxuICogQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIFskc2V0dGluZy1ncmlkLWNvbHVtbnNdXG4gKiBAcmV0dXJuIHtOdW1iZXJ9XG4gKi9cbkBmdW5jdGlvbiBoZWxwZXItZ3JpZC1zcGFuKCRjb2x1bW4sICRjb2x1bW5zOiAkc2V0dGluZy1ncmlkLWNvbHVtbnMpIHtcbiAgICBAcmV0dXJuIGNhbGMoKDEwMCUgLyAjeyRjb2x1bW5zfSkgKiAjeyRjb2x1bW59KTtcbn1cbiIsIi8qKlxuICogQWRkcyBjbGVhcmluZyBmb3IgZWxlbWVudCB3aXRoIGZsb2F0ZWQgY2hpbGQgZWxlbWVudHMuXG4gKi9cbkBtaXhpbiBoZWxwZXItdWktY2xlYXJmaXgge1xuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBBZGRzIGEgYm94LXNoYWRvdyB3aXRoIGJhc2ljIHZhbHVlcy5cbiAqL1xuQG1peGluIGhlbHBlci11aS1zaGFkb3coKSB7XG4gICAgYm94LXNoYWRvdzogMCAycHggNXB4IDFweCAkc2V0dGluZy1jb2xvci1zaGFkb3c7XG5cbiAgICBAY29udGVudDtcbn1cbiIsIi8qKlxuICogQ2hlY2tzIHBhcmFtZXRlciBvbiBwcmVzZW5jZSBpbiB0aGUgYmxhY2tsaXN0IG9mIGltcG9ydHMgc2V0dGluZyBsaXN0LlxuICogQHBhcmFtIHtMaXN0fSAka2V5d29yZHNcbiAqIEBjb250ZW50IEV4dGVuZHMgbWl4aW4gd2l0aCBwcm9wZXJ0aWVzIGlmICRrZXl3b3JkcyBpcyBub3Qgb24gdGhlIGJsYWNrbGlzdC5cbiAqL1xuQG1peGluIGhlbHBlci1pbXBvcnQoJGtleXdvcmRzLi4uKSB7XG4gICAgJGlzQmxhY2tsaXN0ZWQ6IGZhbHNlO1xuXG4gICAgQGVhY2ggJGtleXdvcmQgaW4gJGtleXdvcmRzIHtcbiAgICAgICAgQGlmIGluZGV4KCRzZXR0aW5nLWltcG9ydC1ibGFja2xpc3QsICRrZXl3b3JkKSAhPSBudWxsIHtcbiAgICAgICAgICAgICRpc0JsYWNrbGlzdGVkOiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmIG5vdCAkaXNCbGFja2xpc3RlZCB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cbiIsIi8qKlxuICogUG92aWRlcyB0cmFuc2l0aW9uIHByb3BlcnR5IGNvbmZpZ3VyZWQgYnkgdGhlIHBhc3NlZCBwYXJhbWV0ZXJzLlxuICogQHBhcmFtIHtTdHJpbmd9ICRwcm9wc1xuICogQHBhcmFtIHtOdW1iZXJ9ICRkdXJhdGlvbiBbJHNldHRpbmctZWZmZWN0LWRlZmF1bHQtZHVyYXRpb25dXG4gKiBAcGFyYW0ge1N0cmluZ30gJGVhc2UgWyRzZXR0aW5nLWVmZmVjdC1kZWZhdWx0LWVhc2VdXG4gKi9cbkBtaXhpbiBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oXG4gICAgJHByb3BzOiBvcGFjaXR5IHZpc2liaWxpdHksXG4gICAgJGR1cmF0aW9uOiAkc2V0dGluZy1lZmZlY3QtZGVmYXVsdC1kdXJhdGlvbixcbiAgICAkZWFzZTogJHNldHRpbmctZWZmZWN0LWRlZmF1bHQtZWFzZVxuKSB7XG4gICAgJHRyYW5zaXRpb246IG51bGw7XG5cbiAgICBAZWFjaCAkcHJvcCBpbiAkcHJvcHMge1xuICAgICAgICAkdHJhbnNpdGlvbjogJHByb3AgJGR1cmF0aW9uICRlYXNlLCAkdHJhbnNpdGlvbjtcbiAgICB9XG4gICAgdHJhbnNpdGlvbjogJHRyYW5zaXRpb247XG5cbiAgICAucGFnZS1sb2FkaW5nICYge1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBhZ2VudC1uYXZpZ2F0aW9uKCk7XG4iLCIkc2V0dGluZy1jb2xvci15ZWxsb3c6ICNmZmJmMWM7XG4kc2V0dGluZy1jb2xvci1ibHVlOiAjNWUzZGZmO1xuXG4kc2V0dGluZy1jb2xvci1ncmF5LTE6ICNmNWY1ZjU7XG4kc2V0dGluZy1jb2xvci1ncmF5LTI6ICNlZGVkZWQ7XG4kc2V0dGluZy1jb2xvci1ncmF5LTM6ICNkZWRlZGU7XG4kc2V0dGluZy1jb2xvci1ncmF5LTQ6ICM1NTU7XG4kc2V0dGluZy1jb2xvci1ncmF5LTU6ICM0NDQ7XG4kc2V0dGluZy1jb2xvci1ncmF5LTY6ICMzMzM7XG4kc2V0dGluZy1jb2xvci1ibGFjazogIzExMTtcblxuJHNldHRpbmctY29sb3ItaW5mbzogI2YwZWRlNjtcblxuJHNldHRpbmctY29sb3ItbWFpbjogIzAwYWZiNDtcbiRzZXR0aW5nLWNvbG9yLWFsdDogI2ZmNDg1OTtcbiRzZXR0aW5nLWNvbG9yLXRleHQ6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyOiAkc2V0dGluZy1jb2xvci1pbmZvO1xuJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzOiAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG5cbiRzZXR0aW5nLWNvbG9yLWFscGhhLTE6IHJnYmEoJHNldHRpbmctY29sb3ItYmxhY2ssIDAuMDUpO1xuJHNldHRpbmctY29sb3ItYWxwaGEtMjogcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjEpO1xuJHNldHRpbmctY29sb3ItYWxwaGEtMzogcmdiYSgkc2V0dGluZy1jb2xvci1ibGFjaywgMC41KTtcbiRzZXR0aW5nLWNvbG9yLWFscGhhLTU6IHJnYmEoJHNldHRpbmctY29sb3ItZ3JheS02LCAwLjQpO1xuJHNldHRpbmctY29sb3ItYWxwaGEtNjogcmdiYSgkc2V0dGluZy1jb2xvci1ncmF5LTMsIDAuNSk7XG4kc2V0dGluZy1jb2xvci1hbHBoYS03OiByZ2JhKCRzZXR0aW5nLWNvbG9yLWdyYXktMywgMC43NSk7XG4kc2V0dGluZy1jb2xvci1hbHBoYS04OiByZ2JhKCRzZXR0aW5nLWNvbG9yLWJsYWNrLCAwLjI0KTtcbiRzZXR0aW5nLWNvbG9yLWFscGhhLTk6IHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC40KTtcblxuJHNldHRpbmctY29sb3ItYWN0aW9uczogKFxuICAgIGluZm86ICRzZXR0aW5nLWNvbG9yLWluZm8sXG4gICAgd2FybmluZzogI2YzNzg0OSxcbiAgICBzdWNjZXNzOiAjNGFjMzhlLFxuICAgIGFsZXJ0OiAjY2IzZDQ5LFxuKTtcblxuJHNldHRpbmctY29sb3Itc3RhdHVzZXM6IChcbiAgICBzY2hlbWUtMS10ZXh0OiAjMDBiMmI1LFxuICAgIHNjaGVtZS0xLWJhY2tnb3VuZDogI2U5ZjdmNyxcbiAgICBzY2hlbWUtMi10ZXh0OiAjYjdiMWE1LFxuICAgIHNjaGVtZS0yLWJhY2tnb3VuZDogI2YwZWRlNixcbiAgICBzY2hlbWUtMy10ZXh0OiAkc2V0dGluZy1jb2xvci1ncmF5LTQsXG4gICAgc2NoZW1lLTMtYmFja2dvdW5kOiAkc2V0dGluZy1jb2xvci1ncmF5LTIsXG4gICAgc2NoZW1lLTQtdGV4dDogI2ZmMmE1NCxcbiAgICBzY2hlbWUtNC1iYWNrZ291bmQ6ICNmNmRlZTAsXG4gICAgc2NoZW1lLTUtdGV4dDogIzAwMCxcbiAgICBzY2hlbWUtNS1iYWNrZ291bmQ6ICRzZXR0aW5nLWNvbG9yLWdyYXktMSxcbik7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBib3JkZXItYm90dG9tOiByZW0oMSkgc29saWQgJHNldHRpbmctY29sb3ItZ3JheS0xO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyA0O1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgcmVtKDE2KTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZC1taW4pIHtcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDgpIDAgcmVtKDEyKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZC1taW4pIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZy1taW4pIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDEyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2N1c3RvbWVyIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogNDUlO1xuXG4gICAgICAgICAgICAmLS1zZWFyY2gge1xuICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogcmVtKDEpIHNvbGlkICRzZXR0aW5nLWNvbG9yLWdyYXktMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbWQtbWluKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDM4JTtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2MCU7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZy1taW4pIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR4bC1taW4pIHtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDEyKTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZ2VudCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogNDUlO1xuXG4gICAgICAgICAgICAmLS1zZWFyY2gge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbWQtbWluKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDM1JTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnLW1pbikge1xuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDQ1JTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9lZmZlY3QnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLWZpbHRlci1jYXRlZ29yeSgkbmFtZTogJy5maWx0ZXItY2F0ZWdvcnknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jYXRlZ29yeS10b2dnbGUtYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0pO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1jb2xsYXBzZWQge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGdyaWQtdGVtcGxhdGUtcm93cyk7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQtaW5uZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXJvdyB7XG4gICAgICAgICAgICAmLS1uby1jaGlsZHJlbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZW51LWl0ZW0gJl9fbWVudS1pdGVtIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBheW1lbnQtYXBwLXdpZGdldC1wYXlwYWwtYnV0dG9ucygkbmFtZTogJy5wYXlwYWwtYnV0dG9ucycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBtaW4taGVpZ2h0OiAxcmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1sb2FkaW5nIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc3Bpbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWNvbXBhcmlzb24tcGFnZS1jb21wYXJpc29uLXRhYmxlKCRuYW1lOiAnLmNvbXBhcmlzb24tdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLCBtaW5tYXgoMTByZW0sIDFmcikpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KG1pbi1jb250ZW50LCAxNXJlbSkgcmVwZWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5tYXgoMTVyZW0sIDFmcilcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm90LW5vdGF0aW9uICovXG4gICAgICAgICAgICAmOm5vdCgmLS1zaXplLTEpOm5vdCgmLS1zaXplLTIpIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDUwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4gKyAyKSAjeyRuYW1lfV9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1uYW1lLFxuICAgICAgICAgICAgJi0tYXR0cmlidXRlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5hbWUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zbS1mdWxsIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1wcm9kdWN0cyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Byb2R1Y3Qge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC45KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW91dGVyLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluLXRvIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0YXRpYzpub3QoLmlzLWludmlzaWJsZSkge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0LWRyb3B6b25lKCRuYW1lOiAnLmlucHV0LWRyb3B6b25lJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjYyNXJlbTtcblxuICAgICAgICAmX19hcmVhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIGRhc2hlZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA4Ljc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjEyNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZXMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGdhcDogMC4zcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUtZGVsZXRlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICB3aWR0aDogNzcuODEyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSxcbiAgICAgICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1za2lwLWxpbmsoJG5hbWU6ICcuc2tpcC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGUoKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2tpcC1saW5rO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LXZpc2libGUoKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxsZWQsXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiB3aXNobGlzdC13aWRnZXQtd2lzaGxpc3Qtc2VsZWN0b3IoJG5hbWU6ICcud2lzaGxpc3Qtc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXVsdGktZmFjdG9yLWF1dGgtbXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQoJG5hbWU6ICcubXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190eXBlLXNlbGVjdGlvbiB7XG4gICAgICAgICAgICAucmFkaW9fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgPiAubGFiZWwtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgaGVscGVyLWltcG9ydChtb2xlY3VsZSwgcmVhZG9ubHktYnVuZGxlZC1ub3RlKSB7XG4gICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGU7XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAkc2V0dGluZy1jb2xvci1ibGFjayxcbiAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnRcbiAgICAgICAgKTtcbiAgICAgICAgcGFkZGluZzogcmVtKDE1KSByZW0oMTYpO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHJlbSgyKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBmb250OiBmdyhib2xkKSByZW0oMTUpIC8gcmVtKDE4KSAkc2V0dGluZy1mb250LWZhbWlseS1hZGRpdGlvbmFsO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICYtLXN1Y2Nlc3Mge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItYWx0LFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItYWxwaGEtOCxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgxNik7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncobWVkaXVtKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDEzKTtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oMi4yKTtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmFjdGl2ZSxcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1ncmF5LTEsXG4gICAgICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWJsYWNrLFxuICAgICAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBmb250OiBmdyhyZWd1bGFyKSByZW0oMTYpIC8gcmVtKDE4KSAkc2V0dGluZy1mb250LWZhbWlseTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHBoYS04O1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWxwaGEtODtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1ncmF5LTEsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItYmxhY2ssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnRcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1hbHBoYS0yLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLW1haW4sXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnRcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdW1tYXJ5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWJsYWNrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50XG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItYWx0LFxuICAgICAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnRcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZ3JheS0zLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50XG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZ3JheS0zLFxuICAgICAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnRcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbnB1dC1wbGFjZWhvbGRlcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9lZmZlY3QnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLWZpbHRlci1jYXRlZ29yeSgkbmFtZTogJy5maWx0ZXItY2F0ZWdvcnknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jYXRlZ29yeS10b2dnbGUtYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0pO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1jb2xsYXBzZWQge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGdyaWQtdGVtcGxhdGUtcm93cyk7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQtaW5uZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXJvdyB7XG4gICAgICAgICAgICAmLS1uby1jaGlsZHJlbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZW51LWl0ZW0gJl9fbWVudS1pdGVtIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBheW1lbnQtYXBwLXdpZGdldC1wYXlwYWwtYnV0dG9ucygkbmFtZTogJy5wYXlwYWwtYnV0dG9ucycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBtaW4taGVpZ2h0OiAxcmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1sb2FkaW5nIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc3Bpbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWNvbXBhcmlzb24tcGFnZS1jb21wYXJpc29uLXRhYmxlKCRuYW1lOiAnLmNvbXBhcmlzb24tdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLCBtaW5tYXgoMTByZW0sIDFmcikpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KG1pbi1jb250ZW50LCAxNXJlbSkgcmVwZWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5tYXgoMTVyZW0sIDFmcilcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm90LW5vdGF0aW9uICovXG4gICAgICAgICAgICAmOm5vdCgmLS1zaXplLTEpOm5vdCgmLS1zaXplLTIpIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDUwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4gKyAyKSAjeyRuYW1lfV9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1uYW1lLFxuICAgICAgICAgICAgJi0tYXR0cmlidXRlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5hbWUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zbS1mdWxsIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1wcm9kdWN0cyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Byb2R1Y3Qge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC45KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW91dGVyLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluLXRvIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0YXRpYzpub3QoLmlzLWludmlzaWJsZSkge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0LWRyb3B6b25lKCRuYW1lOiAnLmlucHV0LWRyb3B6b25lJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjYyNXJlbTtcblxuICAgICAgICAmX19hcmVhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIGRhc2hlZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA4Ljc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjEyNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZXMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGdhcDogMC4zcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUtZGVsZXRlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICB3aWR0aDogNzcuODEyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSxcbiAgICAgICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1za2lwLWxpbmsoJG5hbWU6ICcuc2tpcC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGUoKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2tpcC1saW5rO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LXZpc2libGUoKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxsZWQsXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiB3aXNobGlzdC13aWRnZXQtd2lzaGxpc3Qtc2VsZWN0b3IoJG5hbWU6ICcud2lzaGxpc3Qtc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXVsdGktZmFjdG9yLWF1dGgtbXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQoJG5hbWU6ICcubXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190eXBlLXNlbGVjdGlvbiB7XG4gICAgICAgICAgICAucmFkaW9fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgPiAubGFiZWwtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlIHtcbiAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICBib3JkZXI6IG5vbmU7XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJveC1zaGFkb3cpO1xuICAgICAgICBtYXJnaW46IDAgMCByZW0oMTApO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuXG4gICAgICAgIC5uby10b3VjaCAmIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgJHNldHRpbmctY29sb3ItYmxhY2ssICRzZXR0aW5nLWNvbG9yLWFscGhhLTEpO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogcmVtKDIpIHJlbSgxMCkgcmVtKDMwKSAwICRzZXR0aW5nLWNvbG9yLXNoYWRvdztcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuMDU7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbWQtbWluKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oMjApO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWxwaGEtMTtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsLW1pbikge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtKDQwKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oMjQpIDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICY6bm90KCYtLWltYWdlLWNvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZC1taW4pIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbSgzNSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1pbWFnZS1jb250YWluZXIge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHBoYS0xO1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgxNSkgcmVtKDE1KSAwO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZC1taW4pIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCByZW0oMzApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG1lZGl1bSk7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJHNldHRpbmctZm9udC1mYW1pbHktYWRkaXRpb25hbDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg4KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NrdSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncobGlnaHQpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgxOCk7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgwLjI3KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgzMCk7XG4gICAgICAgICAgICBmb250OiBmdyhsaWdodCkgcmVtKDE4KSAkc2V0dGluZy1mb250LWZhbWlseS1hZGRpdGlvbmFsO1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgwLjMpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZC1taW4pIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMCByZW0oMTUpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJG1kLW1pbikge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgpO1xuIiwiJHNldHRpbmctemktdW5kZXJzaWRlOiAtMTtcbiRzZXR0aW5nLXppLWVsZW1lbnQ6IDEwO1xuJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZzogMzUwO1xuJHNldHRpbmctemktY29sb3Itc2VsZWN0b3I6IDM1MDtcbiRzZXR0aW5nLXppLXNlbGVjdDogMzUwO1xuJHNldHRpbmctemktaGVhZGVyOiA0MDA7XG4kc2V0dGluZy16aS1zaWRlLWRyYXdlcjogNTAwO1xuJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE6IDYwMDtcbiRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9uczogNzAwO1xuIiwiJHNldHRpbmctZm9udC1mYW1pbHk6ICdDYWxpYnJlJywgc2Fucy1zZXJpZjtcbiRzZXR0aW5nLWZvbnQtZmFtaWx5LWFkZGl0aW9uYWw6ICdDaXJjdWxhcicsIHNhbnMtc2VyaWY7XG4kc2V0dGluZy1mb250LWZhbWlseS1jb2RlOiAnTWVubG8nLCBtb25vc3BhY2U7XG4kc2V0dGluZy1mb250LXNpemUtYmFzZTogMTZweDtcblxuJHNldHRpbmctZm9udC1zaXplOiAoXG4gICAgMTogcmVtKDUwLCBudW1iZXIpLFxuICAgIDI6IHJlbSgzNCwgbnVtYmVyKSxcbiAgICAzOiByZW0oMjgsIG51bWJlciksXG4gICAgNDogcmVtKDIyLCBudW1iZXIpLFxuICAgIDU6IHJlbSgxNSwgbnVtYmVyKSxcbiAgICA2OiByZW0oMTQsIG51bWJlciksXG4gICAgYmlnOiByZW0oMjApLFxuICAgIGRlZmF1bHQ6IHJlbSgxNiksXG4gICAgc21hbGw6IHJlbSgxNCksXG4pO1xuXG4kc2V0dGluZy1mb250LXdlaWdodDogKFxuICAgIGxpZ2h0OiAzMDAsXG4gICAgcmVndWxhcjogNDAwLFxuICAgIG1lZGl1bTogNTAwLFxuICAgIGJvbGQ6IDcwMCxcbiAgICBibGFjazogOTAwLFxuKTtcblxuJHNldHRpbmctZm9udC1saW5lLWhlaWdodDogKFxuICAgIDE6IDEuMSxcbiAgICAyOiAxLjIsXG4gICAgMzogMS40LFxuICAgIDQ6IDEuNCxcbiAgICA1OiAxLjQsXG4gICAgNjogMS40LFxuICAgIGRlZmF1bHQ6IDEuNSxcbiAgICB0aWdodDogMS4xLFxuKTtcblxuJHNldHRpbmctZm9udC1sZXR0ZXItc3BhY2luZzogKFxuICAgIDE6IHJlbSgtMC44LCBudW1iZXIpLFxuICAgIDI6IHJlbSgtMC44LCBudW1iZXIpLFxuICAgIDM6IHJlbSgxLjM5LCBudW1iZXIpLFxuICAgIDQ6IHJlbSgwLjE1LCBudW1iZXIpLFxuICAgIDU6IHJlbSgyLjcsIG51bWJlciksXG4gICAgNjogcmVtKDIuNSwgbnVtYmVyKSxcbik7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwge1xuICAgIHBhZGRpbmc6IHJlbSgzNSkgcmVtKDIwKSByZW0oMjApO1xuICAgIG1hcmdpbjogcmVtKDM4KSAwIDA7XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIGZvbnQ6IGZ3KGJvbGQpIHJlbSgxNSkgLyByZW0oMTcpICRzZXR0aW5nLWZvbnQtZmFtaWx5LWFkZGl0aW9uYWw7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oMC44KTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3Qge1xuICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeGwtbWluKSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogcmVtKDE2KTtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAkYm9yZGVyLXJhZGl1czogcmVtKDQpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKX0gI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWdnZXN0Jyl9O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3gtc2hhZG93IGJhY2tncm91bmQtY29sb3IpO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWxwaGEtMTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgcmVtKDIpIHJlbSgyMykgMCAkc2V0dGluZy1jb2xvci1hbHBoYS02O1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDIwKTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IHJlbSgxMDQpO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMjIpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KGxpZ2h0KTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMjApO1xuICAgICAgICBtYXJnaW46IDAgcmVtKDIwKSByZW0oMjApIDA7XG4gICAgICAgIGJvcmRlci10b3A6IHJlbSgxKSBkb3R0ZWQgJHNldHRpbmctY29sb3ItZ3JheS0zO1xuICAgICAgICBib3JkZXItYm90dG9tOiByZW0oMSkgZG90dGVkICRzZXR0aW5nLWNvbG9yLWdyYXktMztcblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRzZXR0aW5nLWZvbnQtc2l6ZS1iYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSg4KSByZW0oMTUpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItZ3JheS0xO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDEzKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IHJlbSgxKSBkb3R0ZWQgJHNldHRpbmctY29sb3ItZ3JheS0zO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdG90YWwge1xuICAgICAgICAgICAgZm9udDogZncocmVndWxhcikgJHNldHRpbmctZm9udC1zaXplLWJhc2UgJHNldHRpbmctZm9udC1mYW1pbHktYWRkaXRpb25hbDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeHhsLW1pbikge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNDtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwIHJlbSgxNSkgcmVtKDIxKSAwO1xuXG4gICAgICAgICYtLW1pbmktY2FydCB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSgyMCk7XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGZvbnQ6IGZ3KHJlZ3VsYXIpIG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCBkZWZhdWx0KSAkc2V0dGluZy1mb250LWZhbWlseS1hZGRpdGlvbmFsO1xuXG4gICAgICAgICAgICAmLS1ib2xkIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogZncoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19za3Uge1xuICAgICAgICAgICAgZm9udDogZncobGlnaHQpICRzZXR0aW5nLWZvbnQtc2l6ZS1iYXNlICRzZXR0aW5nLWZvbnQtZmFtaWx5O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlcyB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSgxNik7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeHhsLW1pbikge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZm9udDogZncocmVndWxhcikgJHNldHRpbmctZm9udC1zaXplLWJhc2UgJHNldHRpbmctZm9udC1mYW1pbHktYWRkaXRpb25hbDtcblxuICAgICAgICAgICAgJi0tc2Vjb25kYXJ5IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0zO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ib2xkIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogZncoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW1pbmktY2FydCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhsaWdodCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3Q7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbnB1dC1wbGFjZWhvbGRlcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGhlbHBlci1pbXBvcnQobW9sZWN1bGUsIG9yZGVyLWRldGFpbC10YWJsZSkge1xuICAgIEBpbmNsdWRlIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlO1xufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbnB1dC1wbGFjZWhvbGRlcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9lZmZlY3QnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLWZpbHRlci1jYXRlZ29yeSgkbmFtZTogJy5maWx0ZXItY2F0ZWdvcnknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jYXRlZ29yeS10b2dnbGUtYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0pO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1jb2xsYXBzZWQge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGdyaWQtdGVtcGxhdGUtcm93cyk7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQtaW5uZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXJvdyB7XG4gICAgICAgICAgICAmLS1uby1jaGlsZHJlbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZW51LWl0ZW0gJl9fbWVudS1pdGVtIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBheW1lbnQtYXBwLXdpZGdldC1wYXlwYWwtYnV0dG9ucygkbmFtZTogJy5wYXlwYWwtYnV0dG9ucycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBtaW4taGVpZ2h0OiAxcmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1sb2FkaW5nIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc3Bpbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWNvbXBhcmlzb24tcGFnZS1jb21wYXJpc29uLXRhYmxlKCRuYW1lOiAnLmNvbXBhcmlzb24tdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLCBtaW5tYXgoMTByZW0sIDFmcikpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KG1pbi1jb250ZW50LCAxNXJlbSkgcmVwZWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5tYXgoMTVyZW0sIDFmcilcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm90LW5vdGF0aW9uICovXG4gICAgICAgICAgICAmOm5vdCgmLS1zaXplLTEpOm5vdCgmLS1zaXplLTIpIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDUwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4gKyAyKSAjeyRuYW1lfV9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1uYW1lLFxuICAgICAgICAgICAgJi0tYXR0cmlidXRlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5hbWUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zbS1mdWxsIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1wcm9kdWN0cyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Byb2R1Y3Qge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC45KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW91dGVyLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluLXRvIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0YXRpYzpub3QoLmlzLWludmlzaWJsZSkge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0LWRyb3B6b25lKCRuYW1lOiAnLmlucHV0LWRyb3B6b25lJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjYyNXJlbTtcblxuICAgICAgICAmX19hcmVhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIGRhc2hlZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA4Ljc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjEyNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZXMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGdhcDogMC4zcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUtZGVsZXRlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICB3aWR0aDogNzcuODEyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSxcbiAgICAgICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1za2lwLWxpbmsoJG5hbWU6ICcuc2tpcC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGUoKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2tpcC1saW5rO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LXZpc2libGUoKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxsZWQsXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiB3aXNobGlzdC13aWRnZXQtd2lzaGxpc3Qtc2VsZWN0b3IoJG5hbWU6ICcud2lzaGxpc3Qtc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXVsdGktZmFjdG9yLWF1dGgtbXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQoJG5hbWU6ICcubXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190eXBlLXNlbGVjdGlvbiB7XG4gICAgICAgICAgICAucmFkaW9fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgPiAubGFiZWwtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgZmlsZS1kb3dubG9hZC1saW5rIHtcbiAgICAmX19pY29uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDQwKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAxMCk7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBoZWxwZXItaW1wb3J0KG1vbGVjdWxlLCBwYXlwYWwtYnV0dG9ucykge1xuICAgIEBpbmNsdWRlIHBheW1lbnQtYXBwLXdpZGdldC1wYXlwYWwtYnV0dG9ucztcbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktdm9sdW1lLXByaWNlKCkge1xuICAgICZfX2Ftb3VudCB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgZm9udDogZncocmVndWxhcikgcmVtKDIwKSAvIHJlbSgyNSkgJHNldHRpbmctZm9udC1mYW1pbHktYWRkaXRpb25hbDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsLW1pbikge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMjIpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyOCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0zO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTUpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgxOSk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSgyNCk7XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiByZW0oMSkgc29saWQgJHNldHRpbmctY29sb3ItZ3JheS0zO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncoYm9sZCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogcmVtKDEpIHNvbGlkICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCkge1xuICAgICZfX2l0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTUpO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZGV0YWlscyB7XG4gICAgICAgIHBhZGRpbmc6IHJlbSg1KSByZW0oMTgpO1xuICAgIH1cblxuICAgICZfX25hbWUge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICBmb250LWZhbWlseTogJHNldHRpbmctZm9udC1mYW1pbHktYWRkaXRpb25hbDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgwLjI3KTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBwcm9kdWN0LWNvbXBhcmlzb24tcGFnZS1jb21wYXJpc29uLXRhYmxlKCkge1xuICAgICZfX3Byb2R1Y3Qge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxNjtcbiRzZWxlY3Rvci1ib3JkZXItc2l6ZTogMjtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWNvbG9yLXNlbGVjdG9yO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IHJlbSgkY29sb3Itc2VsZWN0b3Itc2l6ZSk7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSgkY29sb3Itc2VsZWN0b3Itc2l6ZSk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICAgICAgICAgIHdpZHRoOiByZW0oJGNvbG9yLXNlbGVjdG9yLXNpemUgLSAyKTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbSgkY29sb3Itc2VsZWN0b3Itc2l6ZSAtIDIpO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogcmVtKCRzZWxlY3Rvci1ib3JkZXItc2l6ZSkgc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogcmVtKC0xKTtcbiAgICAgICAgICAgICAgICB0b3A6IHJlbSgtMSk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHJlbSgkY29sb3Itc2VsZWN0b3Itc2l6ZSArIDIpO1xuICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKCRjb2xvci1zZWxlY3Rvci1zaXplICsgMik7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgICAgICBib3JkZXI6IHJlbSgkc2VsZWN0b3ItYm9yZGVyLXNpemUgKyAxKSBzb2xpZCAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSg0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgI3skbmFtZX1fX3Rvb2x0aXAge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190b29sdGlwIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihhbGwpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogcmVtKC00Myk7XG4gICAgICAgICAgICBsZWZ0OiByZW0oLTE1KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgZm9udDogZncobGlnaHQpIHJlbSgxNikgJHNldHRpbmctZm9udC1mYW1pbHk7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oNSkgcmVtKDExKSByZW0oNykgcmVtKDEwKTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiByZW0oMik7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IHJlbSgxNyk7XG4gICAgICAgICAgICAgICAgYm90dG9tOiByZW0oLTQpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHJlbSgyKTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgICAgICB3aWR0aDogcmVtKDEwKTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbSgxMCk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbnB1dC1wbGFjZWhvbGRlcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9lZmZlY3QnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLWZpbHRlci1jYXRlZ29yeSgkbmFtZTogJy5maWx0ZXItY2F0ZWdvcnknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jYXRlZ29yeS10b2dnbGUtYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0pO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1jb2xsYXBzZWQge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGdyaWQtdGVtcGxhdGUtcm93cyk7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQtaW5uZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXJvdyB7XG4gICAgICAgICAgICAmLS1uby1jaGlsZHJlbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZW51LWl0ZW0gJl9fbWVudS1pdGVtIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBheW1lbnQtYXBwLXdpZGdldC1wYXlwYWwtYnV0dG9ucygkbmFtZTogJy5wYXlwYWwtYnV0dG9ucycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBtaW4taGVpZ2h0OiAxcmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1sb2FkaW5nIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc3Bpbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWNvbXBhcmlzb24tcGFnZS1jb21wYXJpc29uLXRhYmxlKCRuYW1lOiAnLmNvbXBhcmlzb24tdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLCBtaW5tYXgoMTByZW0sIDFmcikpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KG1pbi1jb250ZW50LCAxNXJlbSkgcmVwZWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5tYXgoMTVyZW0sIDFmcilcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm90LW5vdGF0aW9uICovXG4gICAgICAgICAgICAmOm5vdCgmLS1zaXplLTEpOm5vdCgmLS1zaXplLTIpIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDUwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4gKyAyKSAjeyRuYW1lfV9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1uYW1lLFxuICAgICAgICAgICAgJi0tYXR0cmlidXRlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5hbWUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zbS1mdWxsIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1wcm9kdWN0cyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Byb2R1Y3Qge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC45KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW91dGVyLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluLXRvIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0YXRpYzpub3QoLmlzLWludmlzaWJsZSkge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0LWRyb3B6b25lKCRuYW1lOiAnLmlucHV0LWRyb3B6b25lJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjYyNXJlbTtcblxuICAgICAgICAmX19hcmVhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIGRhc2hlZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA4Ljc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjEyNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZXMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGdhcDogMC4zcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUtZGVsZXRlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICB3aWR0aDogNzcuODEyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSxcbiAgICAgICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1za2lwLWxpbmsoJG5hbWU6ICcuc2tpcC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGUoKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2tpcC1saW5rO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LXZpc2libGUoKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxsZWQsXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiB3aXNobGlzdC13aWRnZXQtd2lzaGxpc3Qtc2VsZWN0b3IoJG5hbWU6ICcud2lzaGxpc3Qtc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXVsdGktZmFjdG9yLWF1dGgtbXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQoJG5hbWU6ICcubXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190eXBlLXNlbGVjdGlvbiB7XG4gICAgICAgICAgICAucmFkaW9fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgPiAubGFiZWwtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGltcG9ydCAnLi4vY29sb3Itc2VsZWN0b3IvY29sb3Itc2VsZWN0b3InO1xuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDI0O1xuJHNlbGVjdG9yLWJvcmRlci1zaXplOiAzO1xuXG5AaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbnB1dC1wbGFjZWhvbGRlcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9lZmZlY3QnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLWZpbHRlci1jYXRlZ29yeSgkbmFtZTogJy5maWx0ZXItY2F0ZWdvcnknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jYXRlZ29yeS10b2dnbGUtYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0pO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1jb2xsYXBzZWQge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGdyaWQtdGVtcGxhdGUtcm93cyk7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQtaW5uZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXJvdyB7XG4gICAgICAgICAgICAmLS1uby1jaGlsZHJlbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZW51LWl0ZW0gJl9fbWVudS1pdGVtIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBheW1lbnQtYXBwLXdpZGdldC1wYXlwYWwtYnV0dG9ucygkbmFtZTogJy5wYXlwYWwtYnV0dG9ucycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBtaW4taGVpZ2h0OiAxcmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1sb2FkaW5nIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc3Bpbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWNvbXBhcmlzb24tcGFnZS1jb21wYXJpc29uLXRhYmxlKCRuYW1lOiAnLmNvbXBhcmlzb24tdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLCBtaW5tYXgoMTByZW0sIDFmcikpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KG1pbi1jb250ZW50LCAxNXJlbSkgcmVwZWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5tYXgoMTVyZW0sIDFmcilcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm90LW5vdGF0aW9uICovXG4gICAgICAgICAgICAmOm5vdCgmLS1zaXplLTEpOm5vdCgmLS1zaXplLTIpIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDUwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4gKyAyKSAjeyRuYW1lfV9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1uYW1lLFxuICAgICAgICAgICAgJi0tYXR0cmlidXRlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5hbWUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zbS1mdWxsIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1wcm9kdWN0cyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Byb2R1Y3Qge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC45KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW91dGVyLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluLXRvIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0YXRpYzpub3QoLmlzLWludmlzaWJsZSkge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0LWRyb3B6b25lKCRuYW1lOiAnLmlucHV0LWRyb3B6b25lJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjYyNXJlbTtcblxuICAgICAgICAmX19hcmVhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIGRhc2hlZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA4Ljc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjEyNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZXMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGdhcDogMC4zcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUtZGVsZXRlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICB3aWR0aDogNzcuODEyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSxcbiAgICAgICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1za2lwLWxpbmsoJG5hbWU6ICcuc2tpcC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGUoKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2tpcC1saW5rO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LXZpc2libGUoKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxsZWQsXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiB3aXNobGlzdC13aWRnZXQtd2lzaGxpc3Qtc2VsZWN0b3IoJG5hbWU6ICcud2lzaGxpc3Qtc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXVsdGktZmFjdG9yLWF1dGgtbXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQoJG5hbWU6ICcubXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190eXBlLXNlbGVjdGlvbiB7XG4gICAgICAgICAgICAucmFkaW9fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgPiAubGFiZWwtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGltcG9ydCAnLi4vY29sb3Itc2VsZWN0b3IvY29sb3Itc2VsZWN0b3InO1xuXG5AaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IHJlbSgxKSByZW0oNyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFscGhhLTY7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHJlbSgyKTtcbiAgICAgICAgbWFyZ2luOiAwIHJlbSg4KSByZW0oNCkgMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1tYXgoJHNtLW1heCkge1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDMpIHJlbSg4KTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDExKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgYm9yZGVyOiByZW0oMSkgc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdGVybmF0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiByZW0oMSkgc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2NvbnRpbnVlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogcmVtKDEpIHNvbGlkICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCkge1xuICAgIHBhZGRpbmc6IHJlbSgxNik7XG4gICAgZm9udC1mYW1pbHk6ICRzZXR0aW5nLWZvbnQtZmFtaWx5O1xufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbnB1dC1wbGFjZWhvbGRlcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9lZmZlY3QnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLWZpbHRlci1jYXRlZ29yeSgkbmFtZTogJy5maWx0ZXItY2F0ZWdvcnknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jYXRlZ29yeS10b2dnbGUtYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0pO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1jb2xsYXBzZWQge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGdyaWQtdGVtcGxhdGUtcm93cyk7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQtaW5uZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXJvdyB7XG4gICAgICAgICAgICAmLS1uby1jaGlsZHJlbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZW51LWl0ZW0gJl9fbWVudS1pdGVtIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBheW1lbnQtYXBwLXdpZGdldC1wYXlwYWwtYnV0dG9ucygkbmFtZTogJy5wYXlwYWwtYnV0dG9ucycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBtaW4taGVpZ2h0OiAxcmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1sb2FkaW5nIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc3Bpbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWNvbXBhcmlzb24tcGFnZS1jb21wYXJpc29uLXRhYmxlKCRuYW1lOiAnLmNvbXBhcmlzb24tdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLCBtaW5tYXgoMTByZW0sIDFmcikpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KG1pbi1jb250ZW50LCAxNXJlbSkgcmVwZWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5tYXgoMTVyZW0sIDFmcilcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm90LW5vdGF0aW9uICovXG4gICAgICAgICAgICAmOm5vdCgmLS1zaXplLTEpOm5vdCgmLS1zaXplLTIpIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDUwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4gKyAyKSAjeyRuYW1lfV9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1uYW1lLFxuICAgICAgICAgICAgJi0tYXR0cmlidXRlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5hbWUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zbS1mdWxsIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1wcm9kdWN0cyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Byb2R1Y3Qge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC45KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW91dGVyLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluLXRvIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0YXRpYzpub3QoLmlzLWludmlzaWJsZSkge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0LWRyb3B6b25lKCRuYW1lOiAnLmlucHV0LWRyb3B6b25lJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjYyNXJlbTtcblxuICAgICAgICAmX19hcmVhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIGRhc2hlZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA4Ljc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjEyNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZXMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGdhcDogMC4zcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUtZGVsZXRlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICB3aWR0aDogNzcuODEyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSxcbiAgICAgICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1za2lwLWxpbmsoJG5hbWU6ICcuc2tpcC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGUoKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2tpcC1saW5rO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LXZpc2libGUoKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxsZWQsXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiB3aXNobGlzdC13aWRnZXQtd2lzaGxpc3Qtc2VsZWN0b3IoJG5hbWU6ICcud2lzaGxpc3Qtc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXVsdGktZmFjdG9yLWF1dGgtbXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQoJG5hbWU6ICcubXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190eXBlLXNlbGVjdGlvbiB7XG4gICAgICAgICAgICAucmFkaW9fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgPiAubGFiZWwtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IHJlbSgyKSByZW0oOCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiByZW0oMik7XG4gICAgICAgIGJveC1zaGFkb3c6IHJlbSgxKSByZW0oMSkgMCAwICRzZXR0aW5nLWNvbG9yLXNoYWRvdztcbiAgICAgICAgbWFyZ2luOiAwIHJlbSg4KSByZW0oNCkgMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1tYXgoJHNtLW1heCkge1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDMpIHJlbSgxNSk7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxMSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiByZW0oMTYsIG51bWJlcik7XG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZS1zbWFsbDogcmVtKDE0LCBudW1iZXIpO1xuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemUtc21hbGxlc3Q6IHJlbSgxMiwgbnVtYmVyKTtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDYpO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oNik7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICAgICAgZm9udDogMC8wICRzZXR0aW5nLWZvbnQtZmFtaWx5O1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtKDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSgyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKC0jeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3IteWVsbG93O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3IteWVsbG93O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcmV2aWV3LWNvdW50IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE1KTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBtYXJnaW46IDAgcmVtKDMpIDAgcmVtKDExKTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3N0ZXAge1xuICAgICAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplLXNtYWxsfSAvIDIpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX3N0YXIge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplLXNtYWxsO1xuXG4gICAgICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKC0jeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplLXNtYWxsfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXN0IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19zdGVwIHtcbiAgICAgICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZS1zbWFsbGVzdH0gLyAyKTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZS1zbWFsbGVzdDtcblxuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtKDEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc3RhciB7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplLXNtYWxsZXN0O1xuICAgICAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemUtc21hbGxlc3Q7XG5cbiAgICAgICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoLSN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemUtc21hbGxlc3R9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zdGVwcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKC0zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1hcmdpbmxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbnB1dC1wbGFjZWhvbGRlcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9lZmZlY3QnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLWZpbHRlci1jYXRlZ29yeSgkbmFtZTogJy5maWx0ZXItY2F0ZWdvcnknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jYXRlZ29yeS10b2dnbGUtYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0pO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1jb2xsYXBzZWQge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGdyaWQtdGVtcGxhdGUtcm93cyk7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQtaW5uZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXJvdyB7XG4gICAgICAgICAgICAmLS1uby1jaGlsZHJlbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZW51LWl0ZW0gJl9fbWVudS1pdGVtIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBheW1lbnQtYXBwLXdpZGdldC1wYXlwYWwtYnV0dG9ucygkbmFtZTogJy5wYXlwYWwtYnV0dG9ucycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBtaW4taGVpZ2h0OiAxcmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1sb2FkaW5nIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc3Bpbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWNvbXBhcmlzb24tcGFnZS1jb21wYXJpc29uLXRhYmxlKCRuYW1lOiAnLmNvbXBhcmlzb24tdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLCBtaW5tYXgoMTByZW0sIDFmcikpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KG1pbi1jb250ZW50LCAxNXJlbSkgcmVwZWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5tYXgoMTVyZW0sIDFmcilcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm90LW5vdGF0aW9uICovXG4gICAgICAgICAgICAmOm5vdCgmLS1zaXplLTEpOm5vdCgmLS1zaXplLTIpIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDUwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4gKyAyKSAjeyRuYW1lfV9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1uYW1lLFxuICAgICAgICAgICAgJi0tYXR0cmlidXRlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5hbWUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zbS1mdWxsIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1wcm9kdWN0cyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Byb2R1Y3Qge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC45KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW91dGVyLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluLXRvIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0YXRpYzpub3QoLmlzLWludmlzaWJsZSkge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0LWRyb3B6b25lKCRuYW1lOiAnLmlucHV0LWRyb3B6b25lJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjYyNXJlbTtcblxuICAgICAgICAmX19hcmVhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIGRhc2hlZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA4Ljc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjEyNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZXMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGdhcDogMC4zcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUtZGVsZXRlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICB3aWR0aDogNzcuODEyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSxcbiAgICAgICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1za2lwLWxpbmsoJG5hbWU6ICcuc2tpcC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGUoKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2tpcC1saW5rO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LXZpc2libGUoKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxsZWQsXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiB3aXNobGlzdC13aWRnZXQtd2lzaGxpc3Qtc2VsZWN0b3IoJG5hbWU6ICcud2lzaGxpc3Qtc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXVsdGktZmFjdG9yLWF1dGgtbXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQoJG5hbWU6ICcubXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190eXBlLXNlbGVjdGlvbiB7XG4gICAgICAgICAgICAucmFkaW9fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgPiAubGFiZWwtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNldC13aWRnZXQtcHJvZHVjdC1zZXQtY21zLWNvbnRlbnQoJG5hbWU6ICcucHJvZHVjdC1zZXQtY21zLWNvbnRlbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oNDgpO1xuICAgIH1cbn1cblxuQGluY2x1ZGUgcHJvZHVjdC1zZXQtd2lkZ2V0LXByb2R1Y3Qtc2V0LWNtcy1jb250ZW50KCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbnB1dC1wbGFjZWhvbGRlcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGhlbHBlci1pbXBvcnQobW9sZWN1bGUsIG9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGU7XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbnB1dC1wbGFjZWhvbGRlcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGhlbHBlci1pbXBvcnQobW9sZWN1bGUsIG9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0O1xufVxuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbnB1dC1wbGFjZWhvbGRlcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9lZmZlY3QnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLWZpbHRlci1jYXRlZ29yeSgkbmFtZTogJy5maWx0ZXItY2F0ZWdvcnknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jYXRlZ29yeS10b2dnbGUtYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0pO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1jb2xsYXBzZWQge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGdyaWQtdGVtcGxhdGUtcm93cyk7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQtaW5uZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXJvdyB7XG4gICAgICAgICAgICAmLS1uby1jaGlsZHJlbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZW51LWl0ZW0gJl9fbWVudS1pdGVtIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBheW1lbnQtYXBwLXdpZGdldC1wYXlwYWwtYnV0dG9ucygkbmFtZTogJy5wYXlwYWwtYnV0dG9ucycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBtaW4taGVpZ2h0OiAxcmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1sb2FkaW5nIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc3Bpbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWNvbXBhcmlzb24tcGFnZS1jb21wYXJpc29uLXRhYmxlKCRuYW1lOiAnLmNvbXBhcmlzb24tdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLCBtaW5tYXgoMTByZW0sIDFmcikpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KG1pbi1jb250ZW50LCAxNXJlbSkgcmVwZWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5tYXgoMTVyZW0sIDFmcilcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm90LW5vdGF0aW9uICovXG4gICAgICAgICAgICAmOm5vdCgmLS1zaXplLTEpOm5vdCgmLS1zaXplLTIpIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDUwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4gKyAyKSAjeyRuYW1lfV9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1uYW1lLFxuICAgICAgICAgICAgJi0tYXR0cmlidXRlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5hbWUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zbS1mdWxsIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1wcm9kdWN0cyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Byb2R1Y3Qge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC45KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW91dGVyLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluLXRvIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0YXRpYzpub3QoLmlzLWludmlzaWJsZSkge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0LWRyb3B6b25lKCRuYW1lOiAnLmlucHV0LWRyb3B6b25lJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjYyNXJlbTtcblxuICAgICAgICAmX19hcmVhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIGRhc2hlZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA4Ljc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjEyNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZXMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGdhcDogMC4zcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUtZGVsZXRlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICB3aWR0aDogNzcuODEyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSxcbiAgICAgICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1za2lwLWxpbmsoJG5hbWU6ICcuc2tpcC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGUoKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2tpcC1saW5rO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LXZpc2libGUoKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxsZWQsXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiB3aXNobGlzdC13aWRnZXQtd2lzaGxpc3Qtc2VsZWN0b3IoJG5hbWU6ICcud2lzaGxpc3Qtc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXVsdGktZmFjdG9yLWF1dGgtbXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQoJG5hbWU6ICcubXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190eXBlLXNlbGVjdGlvbiB7XG4gICAgICAgICAgICAucmFkaW9fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgPiAubGFiZWwtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgbWFyZ2luOiAwIHJlbSgyMCkgcmVtKDIwKSAwO1xuICAgICAgICBib3JkZXI6IHJlbSgxKSBkb3R0ZWQgJHNldHRpbmctY29sb3ItZ3JheS0zO1xuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHNldHRpbmctZm9udC1zaXplLWJhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oOCkgcmVtKDE1KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWdyYXktMTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxMyk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiByZW0oMSkgZG90dGVkICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RvdGFsIHtcbiAgICAgICAgICAgIGZvbnQ6IGZ3KHJlZ3VsYXIpICRzZXR0aW5nLWZvbnQtc2l6ZS1iYXNlICRzZXR0aW5nLWZvbnQtZmFtaWx5LWFkZGl0aW9uYWw7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMCByZW0oMTUpIHJlbSgyMSkgcmVtKDEwKTtcblxuICAgICAgICAmX190aHVtYm5haWwtd3JhcHBlciB7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDEyMCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGZvbnQ6IGZ3KG1lZGl1bSkgcmVtKDE1KSAkc2V0dGluZy1mb250LWZhbWlseS1hZGRpdGlvbmFsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2t1IHtcbiAgICAgICAgICAgIGZvbnQ6IGZ3KGxpZ2h0KSAkc2V0dGluZy1mb250LXNpemUtYmFzZSAkc2V0dGluZy1mb250LWZhbWlseTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGZvbnQ6IGZ3KHJlZ3VsYXIpICRzZXR0aW5nLWZvbnQtc2l6ZS1iYXNlICRzZXR0aW5nLWZvbnQtZmFtaWx5LWFkZGl0aW9uYWw7XG5cbiAgICAgICAgICAgICYtLXNlY29uZGFyeSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0O1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbnB1dC1wbGFjZWhvbGRlcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9lZmZlY3QnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLWZpbHRlci1jYXRlZ29yeSgkbmFtZTogJy5maWx0ZXItY2F0ZWdvcnknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jYXRlZ29yeS10b2dnbGUtYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0pO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1jb2xsYXBzZWQge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGdyaWQtdGVtcGxhdGUtcm93cyk7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQtaW5uZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXJvdyB7XG4gICAgICAgICAgICAmLS1uby1jaGlsZHJlbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZW51LWl0ZW0gJl9fbWVudS1pdGVtIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBheW1lbnQtYXBwLXdpZGdldC1wYXlwYWwtYnV0dG9ucygkbmFtZTogJy5wYXlwYWwtYnV0dG9ucycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBtaW4taGVpZ2h0OiAxcmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1sb2FkaW5nIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc3Bpbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWNvbXBhcmlzb24tcGFnZS1jb21wYXJpc29uLXRhYmxlKCRuYW1lOiAnLmNvbXBhcmlzb24tdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLCBtaW5tYXgoMTByZW0sIDFmcikpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KG1pbi1jb250ZW50LCAxNXJlbSkgcmVwZWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5tYXgoMTVyZW0sIDFmcilcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm90LW5vdGF0aW9uICovXG4gICAgICAgICAgICAmOm5vdCgmLS1zaXplLTEpOm5vdCgmLS1zaXplLTIpIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDUwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4gKyAyKSAjeyRuYW1lfV9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1uYW1lLFxuICAgICAgICAgICAgJi0tYXR0cmlidXRlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5hbWUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zbS1mdWxsIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1wcm9kdWN0cyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Byb2R1Y3Qge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC45KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW91dGVyLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluLXRvIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0YXRpYzpub3QoLmlzLWludmlzaWJsZSkge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0LWRyb3B6b25lKCRuYW1lOiAnLmlucHV0LWRyb3B6b25lJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjYyNXJlbTtcblxuICAgICAgICAmX19hcmVhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIGRhc2hlZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA4Ljc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjEyNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZXMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGdhcDogMC4zcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUtZGVsZXRlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICB3aWR0aDogNzcuODEyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSxcbiAgICAgICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1za2lwLWxpbmsoJG5hbWU6ICcuc2tpcC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGUoKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2tpcC1saW5rO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LXZpc2libGUoKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxsZWQsXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiB3aXNobGlzdC13aWRnZXQtd2lzaGxpc3Qtc2VsZWN0b3IoJG5hbWU6ICcud2lzaGxpc3Qtc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXVsdGktZmFjdG9yLWF1dGgtbXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQoJG5hbWU6ICcubXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190eXBlLXNlbGVjdGlvbiB7XG4gICAgICAgICAgICAucmFkaW9fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgPiAubGFiZWwtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiByZW0oMSkgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJG1kLW1pbikge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0oMTIpIHJlbSgzMik7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiByZW0oLTEpO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDEpO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbnB1dC1wbGFjZWhvbGRlcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9QeXovWXZlcy9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvUHl6L1l2ZXMvU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL1B5ei9ZdmVzL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGhlbHBlci1pbXBvcnQobW9sZWN1bGUsIG11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KSB7XG4gICAgQGluY2x1ZGUgbXVsdGktZmFjdG9yLWF1dGgtbXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQ7XG59XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLWxheW91dC1jYXJ0KCRuYW1lOiAnLnBhZ2UtbGF5b3V0LWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDUwKTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZy1taW4pIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMTgwKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2VtcHR5IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSg0OCk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oNTApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnLW1pbikge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDIwKSAwIDA7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbSg2MCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbnRlbnQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSgxMDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2lkZWJhciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZy1taW4pIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oMjApO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogcmVtKDEpIGRvdHRlZCAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbXMtd3JhcCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDIwKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg0Mik7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbSgzOCk7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDgwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgY2FydC1wYWdlLWxheW91dC1jYXJ0KCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kbGF5b3V0LWNoZWNrb3V0LXdpZHRoOiByZW0oNzMwKTtcblxuQG1peGluIGNoZWNrb3V0LXBhZ2UtbGF5b3V0LWNoZWNrb3V0KCRuYW1lOiAnLnBhZ2UtbGF5b3V0LWNoZWNrb3V0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWF4LXdpZHRoOiAkbGF5b3V0LWNoZWNrb3V0LXdpZHRoO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSg2MCk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbWQtbWluKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDQwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2UtbGF5b3V0LWNoZWNrb3V0KCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1jaGVja291dC1icmVhZGNydW1iKCRuYW1lOiAnLmNhcnQtY2hlY2tvdXQtYnJlYWRjcnVtYicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3dyYXAge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbSg1Nik7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbWQtbWluKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbSgyMCk7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogcmVtKDEpIGRvdHRlZCAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9ncmVzcy13cmFwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogNTAlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJG1kLW1pbikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oMSk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZC1taW4pIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9ncmVzcy1tb2Ige1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDEpO1xuICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZC1taW4pIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjYXJ0LWNoZWNrb3V0LWJyZWFkY3J1bWI7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1sYXlvdXQtY3VzdG9tZXIoJG5hbWU6ICcucGFnZS1sYXlvdXQtY3VzdG9tZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oNzUpO1xuXG4gICAgICAgICZfX2Zvcm0td3JhcCB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSgxNik7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oMTYpO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiByZW0oNTcwKTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJG1kLW1pbikge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbG9naW4td3JhcCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oNDApO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjdXN0b21lci1wYWdlLWxheW91dC1jdXN0b21lcigpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbnB1dC1wbGFjZWhvbGRlcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9lZmZlY3QnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLWZpbHRlci1jYXRlZ29yeSgkbmFtZTogJy5maWx0ZXItY2F0ZWdvcnknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jYXRlZ29yeS10b2dnbGUtYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0pO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1jb2xsYXBzZWQge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGdyaWQtdGVtcGxhdGUtcm93cyk7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQtaW5uZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXJvdyB7XG4gICAgICAgICAgICAmLS1uby1jaGlsZHJlbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZW51LWl0ZW0gJl9fbWVudS1pdGVtIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBheW1lbnQtYXBwLXdpZGdldC1wYXlwYWwtYnV0dG9ucygkbmFtZTogJy5wYXlwYWwtYnV0dG9ucycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBtaW4taGVpZ2h0OiAxcmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1sb2FkaW5nIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc3Bpbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWNvbXBhcmlzb24tcGFnZS1jb21wYXJpc29uLXRhYmxlKCRuYW1lOiAnLmNvbXBhcmlzb24tdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLCBtaW5tYXgoMTByZW0sIDFmcikpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KG1pbi1jb250ZW50LCAxNXJlbSkgcmVwZWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5tYXgoMTVyZW0sIDFmcilcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm90LW5vdGF0aW9uICovXG4gICAgICAgICAgICAmOm5vdCgmLS1zaXplLTEpOm5vdCgmLS1zaXplLTIpIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDUwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4gKyAyKSAjeyRuYW1lfV9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1uYW1lLFxuICAgICAgICAgICAgJi0tYXR0cmlidXRlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5hbWUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zbS1mdWxsIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1wcm9kdWN0cyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Byb2R1Y3Qge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC45KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW91dGVyLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluLXRvIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0YXRpYzpub3QoLmlzLWludmlzaWJsZSkge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0LWRyb3B6b25lKCRuYW1lOiAnLmlucHV0LWRyb3B6b25lJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjYyNXJlbTtcblxuICAgICAgICAmX19hcmVhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIGRhc2hlZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA4Ljc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjEyNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZXMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGdhcDogMC4zcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUtZGVsZXRlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICB3aWR0aDogNzcuODEyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSxcbiAgICAgICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1za2lwLWxpbmsoJG5hbWU6ICcuc2tpcC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGUoKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2tpcC1saW5rO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LXZpc2libGUoKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxsZWQsXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiB3aXNobGlzdC13aWRnZXQtd2lzaGxpc3Qtc2VsZWN0b3IoJG5hbWU6ICcud2lzaGxpc3Qtc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXVsdGktZmFjdG9yLWF1dGgtbXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQoJG5hbWU6ICcubXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190eXBlLXNlbGVjdGlvbiB7XG4gICAgICAgICAgICAucmFkaW9fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgPiAubGFiZWwtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLXJldHVybi1wYWdlLWxheW91dC1zYWxlcy1yZXR1cm4oJG5hbWU6ICcucGFnZS1sYXlvdXQtc2FsZXMtcmV0dXJuJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDc1KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNhbGVzLXJldHVybi1wYWdlLWxheW91dC1zYWxlcy1yZXR1cm4oKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1pdGVtKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSgxMCk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeGwtbWluKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtKDE1KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZm8ge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTIpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oNCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDEwKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLXdyYXBwZXIge1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSg4KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS00O1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZm9udC1zaXplOiAwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oNSkgcmVtKDUpIHJlbSgzKTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtaXRlbSgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbnB1dC1wbGFjZWhvbGRlcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9lZmZlY3QnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLWZpbHRlci1jYXRlZ29yeSgkbmFtZTogJy5maWx0ZXItY2F0ZWdvcnknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jYXRlZ29yeS10b2dnbGUtYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0pO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1jb2xsYXBzZWQge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGdyaWQtdGVtcGxhdGUtcm93cyk7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQtaW5uZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXJvdyB7XG4gICAgICAgICAgICAmLS1uby1jaGlsZHJlbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZW51LWl0ZW0gJl9fbWVudS1pdGVtIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBheW1lbnQtYXBwLXdpZGdldC1wYXlwYWwtYnV0dG9ucygkbmFtZTogJy5wYXlwYWwtYnV0dG9ucycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBtaW4taGVpZ2h0OiAxcmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1sb2FkaW5nIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc3Bpbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWNvbXBhcmlzb24tcGFnZS1jb21wYXJpc29uLXRhYmxlKCRuYW1lOiAnLmNvbXBhcmlzb24tdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLCBtaW5tYXgoMTByZW0sIDFmcikpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KG1pbi1jb250ZW50LCAxNXJlbSkgcmVwZWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5tYXgoMTVyZW0sIDFmcilcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm90LW5vdGF0aW9uICovXG4gICAgICAgICAgICAmOm5vdCgmLS1zaXplLTEpOm5vdCgmLS1zaXplLTIpIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDUwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4gKyAyKSAjeyRuYW1lfV9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1uYW1lLFxuICAgICAgICAgICAgJi0tYXR0cmlidXRlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5hbWUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zbS1mdWxsIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1wcm9kdWN0cyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Byb2R1Y3Qge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC45KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW91dGVyLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluLXRvIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0YXRpYzpub3QoLmlzLWludmlzaWJsZSkge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0LWRyb3B6b25lKCRuYW1lOiAnLmlucHV0LWRyb3B6b25lJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjYyNXJlbTtcblxuICAgICAgICAmX19hcmVhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIGRhc2hlZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA4Ljc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjEyNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZXMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGdhcDogMC4zcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUtZGVsZXRlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICB3aWR0aDogNzcuODEyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSxcbiAgICAgICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1za2lwLWxpbmsoJG5hbWU6ICcuc2tpcC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGUoKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2tpcC1saW5rO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LXZpc2libGUoKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxsZWQsXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiB3aXNobGlzdC13aWRnZXQtd2lzaGxpc3Qtc2VsZWN0b3IoJG5hbWU6ICcud2lzaGxpc3Qtc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXVsdGktZmFjdG9yLWF1dGgtbXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQoJG5hbWU6ICcubXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190eXBlLXNlbGVjdGlvbiB7XG4gICAgICAgICAgICAucmFkaW9fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgPiAubGFiZWwtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcmQtY29kZS13aWRnZXQtY2FydC1jb2RlLWZvcm0oJG5hbWU6ICcuY2FydC1jb2RlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1jaGVja291dCB7XG4gICAgICAgICAgICBtYXJnaW46IHJlbSgxOCkgMDtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IHJlbSgxKSBkb3R0ZWQgJHNldHRpbmctY29sb3ItZ3JheS0zO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogcmVtKDEpIGRvdHRlZCAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG5cbiAgICAgICAgICAgIC5ncmlkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuaW5wdXQge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogcmVtKDIpIDAgMCByZW0oMik7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSg0OCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIGNhcmQtY29kZS13aWRnZXQtY2FydC1jb2RlLWZvcm0oKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtbm90ZSgkbmFtZTogJy5jYXJ0LW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAubGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC50ZXh0YXJlYSB7XG4gICAgICAgICAgICByZXNpemU6IG5vbmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiByZW0oOTApO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNhcnQtbm90ZSgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbnB1dC1wbGFjZWhvbGRlcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9lZmZlY3QnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLWZpbHRlci1jYXRlZ29yeSgkbmFtZTogJy5maWx0ZXItY2F0ZWdvcnknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jYXRlZ29yeS10b2dnbGUtYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0pO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1jb2xsYXBzZWQge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGdyaWQtdGVtcGxhdGUtcm93cyk7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQtaW5uZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXJvdyB7XG4gICAgICAgICAgICAmLS1uby1jaGlsZHJlbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZW51LWl0ZW0gJl9fbWVudS1pdGVtIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBheW1lbnQtYXBwLXdpZGdldC1wYXlwYWwtYnV0dG9ucygkbmFtZTogJy5wYXlwYWwtYnV0dG9ucycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBtaW4taGVpZ2h0OiAxcmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1sb2FkaW5nIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc3Bpbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWNvbXBhcmlzb24tcGFnZS1jb21wYXJpc29uLXRhYmxlKCRuYW1lOiAnLmNvbXBhcmlzb24tdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLCBtaW5tYXgoMTByZW0sIDFmcikpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KG1pbi1jb250ZW50LCAxNXJlbSkgcmVwZWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5tYXgoMTVyZW0sIDFmcilcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm90LW5vdGF0aW9uICovXG4gICAgICAgICAgICAmOm5vdCgmLS1zaXplLTEpOm5vdCgmLS1zaXplLTIpIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDUwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4gKyAyKSAjeyRuYW1lfV9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1uYW1lLFxuICAgICAgICAgICAgJi0tYXR0cmlidXRlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5hbWUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zbS1mdWxsIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1wcm9kdWN0cyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Byb2R1Y3Qge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC45KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW91dGVyLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluLXRvIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0YXRpYzpub3QoLmlzLWludmlzaWJsZSkge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0LWRyb3B6b25lKCRuYW1lOiAnLmlucHV0LWRyb3B6b25lJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjYyNXJlbTtcblxuICAgICAgICAmX19hcmVhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIGRhc2hlZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA4Ljc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjEyNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZXMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGdhcDogMC4zcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUtZGVsZXRlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICB3aWR0aDogNzcuODEyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSxcbiAgICAgICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1za2lwLWxpbmsoJG5hbWU6ICcuc2tpcC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGUoKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2tpcC1saW5rO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LXZpc2libGUoKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxsZWQsXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiB3aXNobGlzdC13aWRnZXQtd2lzaGxpc3Qtc2VsZWN0b3IoJG5hbWU6ICcud2lzaGxpc3Qtc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXVsdGktZmFjdG9yLWF1dGgtbXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQoJG5hbWU6ICcubXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190eXBlLXNlbGVjdGlvbiB7XG4gICAgICAgICAgICAucmFkaW9fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgPiAubGFiZWwtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1jYXJ0LWJveCgkbmFtZTogJy5jYXJ0LWJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IHJlbSgxKSBkb3R0ZWQgJHNldHRpbmctY29sb3ItZ3JheS0zO1xuICAgICAgICBwYWRkaW5nOiByZW0oMTgpIDA7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgZm9udDogcmVtKDE2KSAkc2V0dGluZy1mb250LWZhbWlseTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHBoYS0zO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdm91Y2hlciB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oMzIpO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogcmVtKDEpIGRvdHRlZCAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDU2KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlc2V0LXNwYWNpbmcge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgY2FydC1wYWdlLWNhcnQtYm94KCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLWNhcnQtc3VtbWFyeSgkbmFtZTogJy5jYXJ0LXN1bW1hcnknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0oNTYpO1xuXG4gICAgICAgICZfX2lubmVyIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IHJlbSgxKSBkb3R0ZWQgJHNldHRpbmctY29sb3ItZ3JheS0zO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogcmVtKDEpIGRvdHRlZCAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDIwKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZy1taW4pIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oNTYpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdG90YWwge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZm9udDogZncocmVndWxhcikgcmVtKDE0KSAkc2V0dGluZy1mb250LWZhbWlseS1hZGRpdGlvbmFsO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjYXJ0LXBhZ2UtY2FydC1zdW1tYXJ5KCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1jaGVja291dC1ibG9jaygkbmFtZTogJy5jaGVja291dC1ibG9jaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMTUpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTUpO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDIwKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyMCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiByZW0oMSkgZG90dGVkICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlci1ib3R0b20tbGVzcyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnLW1pbikge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2UtY2hlY2tvdXQtYmxvY2soKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLWhlYWRpbmcoJG5hbWU6ICcuaGVhZGluZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICBtYXJnaW46IDAgMCByZW0oMzIpO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDEwKTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogcmVtKDEpIGRvdHRlZCAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZC1taW4pIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg1OCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2dvIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIHdpZHRoOiByZW0oOTMpO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oMzYpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogcmVtKDIpO1xuICAgICAgICAgICAgYm9yZGVyOiBzb2xpZCByZW0oMSkgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICAgICAmLS1pbmRlbnQge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCByZW0oOCkgcmVtKDEwKSAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1pbWcge1xuICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNzAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDkwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1oZWFkaW5nKCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1wYXltZW50LWNhcmQtaW5mb3JtYXRpb24oJG5hbWU6ICcucGF5bWVudC1jYXJkLWluZm9ybWF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDIwKTtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJG1kLW1pbikge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KGxpZ2h0KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMjgpO1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgtMC4xOCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2dvIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIHdpZHRoOiByZW0oOTMpO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oMzYpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogcmVtKDIpO1xuICAgICAgICAgICAgYm9yZGVyOiByZW0oMSkgc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9nby1pbWFnZSB7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSgyMCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2UtcGF5bWVudC1jYXJkLWluZm9ybWF0aW9uKCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zaGlwbWVudC1zaWRlYmFyKCRuYW1lOiAnLnNoaXBtZW50LXNpZGViYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0oLTE5KTtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnLW1pbikge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS0xO1xuICAgICAgICAgICAgbWFyZ2luOiAwIHJlbSgtMTUpIHJlbSgxMCk7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oMjApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnLW1pbikge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIHJlbSgyMCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KGxpZ2h0KTtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oLTAuMTgpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXNoaXBtZW50LXNpZGViYXIoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1Y2Nlc3MoJG5hbWU6ICcuc3VjY2Vzcy1wYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMCByZW0oMTYpIHJlbSg2MCk7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZC1taW4pIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMCByZW0oNjApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oNDApO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1Y2Nlc3MoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktaXRlbSgkbmFtZTogJy5zdW1tYXJ5LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgcmVtKC0xNik7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcblxuICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX193cmFwIHtcbiAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSg2MCk7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJG1kLW1pbikge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oNzApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gLmNvbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIHJlbSgxNik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1pdGVtKCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IHJlbSgyMCkgMCByZW0oMzApO1xuICAgICAgICBib3JkZXItdG9wOiByZW0oMSkgZG90dGVkICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogcmVtKDEpIGRvdHRlZCAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZy1taW4pIHtcbiAgICAgICAgICAgIG1hcmdpbjogcmVtKDMwKSAwIHJlbSg0MCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWl0ZW0ge1xuICAgICAgICAgICAgZm9udDogZncocmVndWxhcikgcmVtKDE0KSAvIHJlbSgxOCkgJHNldHRpbmctZm9udC1mYW1pbHktYWRkaXRpb25hbDtcbiAgICAgICAgICAgIG1hcmdpbjogcmVtKDI0KSAwO1xuXG4gICAgICAgICAgICAmLS10b3RhbCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTUpO1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KGJvbGQpO1xuICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oMC44KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5KCRuYW1lOiAnLnN1bW1hcnktcGFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oNjApO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZC1taW4pIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRyZXNzLWluZGVudCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oMzMpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJG1kLW1pbikge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeSgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbnB1dC1wbGFjZWhvbGRlcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9lZmZlY3QnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLWZpbHRlci1jYXRlZ29yeSgkbmFtZTogJy5maWx0ZXItY2F0ZWdvcnknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jYXRlZ29yeS10b2dnbGUtYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0pO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1jb2xsYXBzZWQge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGdyaWQtdGVtcGxhdGUtcm93cyk7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQtaW5uZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXJvdyB7XG4gICAgICAgICAgICAmLS1uby1jaGlsZHJlbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZW51LWl0ZW0gJl9fbWVudS1pdGVtIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBheW1lbnQtYXBwLXdpZGdldC1wYXlwYWwtYnV0dG9ucygkbmFtZTogJy5wYXlwYWwtYnV0dG9ucycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBtaW4taGVpZ2h0OiAxcmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1sb2FkaW5nIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc3Bpbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWNvbXBhcmlzb24tcGFnZS1jb21wYXJpc29uLXRhYmxlKCRuYW1lOiAnLmNvbXBhcmlzb24tdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLCBtaW5tYXgoMTByZW0sIDFmcikpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KG1pbi1jb250ZW50LCAxNXJlbSkgcmVwZWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5tYXgoMTVyZW0sIDFmcilcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm90LW5vdGF0aW9uICovXG4gICAgICAgICAgICAmOm5vdCgmLS1zaXplLTEpOm5vdCgmLS1zaXplLTIpIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDUwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4gKyAyKSAjeyRuYW1lfV9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1uYW1lLFxuICAgICAgICAgICAgJi0tYXR0cmlidXRlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5hbWUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zbS1mdWxsIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1wcm9kdWN0cyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Byb2R1Y3Qge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC45KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW91dGVyLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluLXRvIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0YXRpYzpub3QoLmlzLWludmlzaWJsZSkge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0LWRyb3B6b25lKCRuYW1lOiAnLmlucHV0LWRyb3B6b25lJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjYyNXJlbTtcblxuICAgICAgICAmX19hcmVhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIGRhc2hlZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA4Ljc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjEyNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZXMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGdhcDogMC4zcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUtZGVsZXRlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICB3aWR0aDogNzcuODEyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSxcbiAgICAgICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1za2lwLWxpbmsoJG5hbWU6ICcuc2tpcC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGUoKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2tpcC1saW5rO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LXZpc2libGUoKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxsZWQsXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiB3aXNobGlzdC13aWRnZXQtd2lzaGxpc3Qtc2VsZWN0b3IoJG5hbWU6ICcud2lzaGxpc3Qtc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXVsdGktZmFjdG9yLWF1dGgtbXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQoJG5hbWU6ICcubXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190eXBlLXNlbGVjdGlvbiB7XG4gICAgICAgICAgICAucmFkaW9fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgPiAubGFiZWwtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1zaWRlYmFyKCRuYW1lOiAnLnN1bW1hcnktc2lkZWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSgtMTkpO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTE7XG4gICAgICAgICAgICBtYXJnaW46IDAgcmVtKC0xNSkgcmVtKDEwKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgyMCk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgcmVtKDIwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncobGlnaHQpO1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgtMC4xOCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1zaWRlYmFyKCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY21zLWJsb2NrLXdpZGdldC1wcm9kdWN0LWNtcy1ibG9jaygkbmFtZTogJy5wcm9kdWN0LWNtcy1ibG9jaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDE0KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyMSk7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcblxuICAgICAgICAmID4gaDEge1xuICAgICAgICAgICAgZm9udDogZncobWVkaXVtKSByZW0oMTUpIC8gMS4zMyAkc2V0dGluZy1mb250LWZhbWlseS1hZGRpdGlvbmFsO1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDUwKSAwIHJlbSgxMSk7XG4gICAgICAgICAgICBib3JkZXItdG9wOiByZW0oMSkgZG90dGVkICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgfVxuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgcmVtKDExKTtcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oNTApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQGluY2x1ZGUgY21zLWJsb2NrLXdpZGdldC1wcm9kdWN0LWNtcy1ibG9jaygpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbnB1dC1wbGFjZWhvbGRlcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9lZmZlY3QnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLWZpbHRlci1jYXRlZ29yeSgkbmFtZTogJy5maWx0ZXItY2F0ZWdvcnknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jYXRlZ29yeS10b2dnbGUtYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0pO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1jb2xsYXBzZWQge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGdyaWQtdGVtcGxhdGUtcm93cyk7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQtaW5uZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXJvdyB7XG4gICAgICAgICAgICAmLS1uby1jaGlsZHJlbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZW51LWl0ZW0gJl9fbWVudS1pdGVtIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBheW1lbnQtYXBwLXdpZGdldC1wYXlwYWwtYnV0dG9ucygkbmFtZTogJy5wYXlwYWwtYnV0dG9ucycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBtaW4taGVpZ2h0OiAxcmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1sb2FkaW5nIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc3Bpbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWNvbXBhcmlzb24tcGFnZS1jb21wYXJpc29uLXRhYmxlKCRuYW1lOiAnLmNvbXBhcmlzb24tdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLCBtaW5tYXgoMTByZW0sIDFmcikpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KG1pbi1jb250ZW50LCAxNXJlbSkgcmVwZWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5tYXgoMTVyZW0sIDFmcilcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm90LW5vdGF0aW9uICovXG4gICAgICAgICAgICAmOm5vdCgmLS1zaXplLTEpOm5vdCgmLS1zaXplLTIpIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDUwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4gKyAyKSAjeyRuYW1lfV9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1uYW1lLFxuICAgICAgICAgICAgJi0tYXR0cmlidXRlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5hbWUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zbS1mdWxsIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1wcm9kdWN0cyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Byb2R1Y3Qge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC45KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW91dGVyLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluLXRvIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0YXRpYzpub3QoLmlzLWludmlzaWJsZSkge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0LWRyb3B6b25lKCRuYW1lOiAnLmlucHV0LWRyb3B6b25lJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjYyNXJlbTtcblxuICAgICAgICAmX19hcmVhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIGRhc2hlZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA4Ljc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjEyNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZXMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGdhcDogMC4zcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUtZGVsZXRlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICB3aWR0aDogNzcuODEyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSxcbiAgICAgICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1za2lwLWxpbmsoJG5hbWU6ICcuc2tpcC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGUoKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2tpcC1saW5rO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LXZpc2libGUoKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxsZWQsXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiB3aXNobGlzdC13aWRnZXQtd2lzaGxpc3Qtc2VsZWN0b3IoJG5hbWU6ICcud2lzaGxpc3Qtc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXVsdGktZmFjdG9yLWF1dGgtbXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQoJG5hbWU6ICcubXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190eXBlLXNlbGVjdGlvbiB7XG4gICAgICAgICAgICAucmFkaW9fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgPiAubGFiZWwtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zZWFyY2gtY21zLXJlc3VsdHMoJG5hbWU6ICcuc2VhcmNoLWNtcy1yZXN1bHRzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oNjApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oMTEpIHJlbSgyNSk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiByZW0oMSkgZG90dGVkICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogcmVtKDEpIGRvdHRlZCAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbWQtbWluKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR4bC1taW4pIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm94LXNoYWRvdyBib3JkZXItYm90dG9tLWNvbG9yKTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5KTtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAkc2V0dGluZy1jb2xvci1ibGFjaywgJHNldHRpbmctY29sb3ItYWxwaGEtMSk7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IHJlbSgyKSByZW0oMTApIHJlbSgzMCkgMCAkc2V0dGluZy1jb2xvci1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuXG4gICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjA1O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKDAuMyk7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJHNldHRpbmctZm9udC1mYW1pbHktYWRkaXRpb25hbDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhtZWRpdW0pO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbi1saW5lOiBpbmhlcml0O1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odGV4dC1kZWNvcmF0aW9uLWNvbG9yKTtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNlYXJjaC1jbXMtcmVzdWx0cygpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbnB1dC1wbGFjZWhvbGRlcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9lZmZlY3QnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLWZpbHRlci1jYXRlZ29yeSgkbmFtZTogJy5maWx0ZXItY2F0ZWdvcnknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jYXRlZ29yeS10b2dnbGUtYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0pO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1jb2xsYXBzZWQge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGdyaWQtdGVtcGxhdGUtcm93cyk7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQtaW5uZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXJvdyB7XG4gICAgICAgICAgICAmLS1uby1jaGlsZHJlbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZW51LWl0ZW0gJl9fbWVudS1pdGVtIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBheW1lbnQtYXBwLXdpZGdldC1wYXlwYWwtYnV0dG9ucygkbmFtZTogJy5wYXlwYWwtYnV0dG9ucycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBtaW4taGVpZ2h0OiAxcmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1sb2FkaW5nIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc3Bpbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWNvbXBhcmlzb24tcGFnZS1jb21wYXJpc29uLXRhYmxlKCRuYW1lOiAnLmNvbXBhcmlzb24tdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLCBtaW5tYXgoMTByZW0sIDFmcikpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KG1pbi1jb250ZW50LCAxNXJlbSkgcmVwZWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5tYXgoMTVyZW0sIDFmcilcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm90LW5vdGF0aW9uICovXG4gICAgICAgICAgICAmOm5vdCgmLS1zaXplLTEpOm5vdCgmLS1zaXplLTIpIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDUwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4gKyAyKSAjeyRuYW1lfV9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1uYW1lLFxuICAgICAgICAgICAgJi0tYXR0cmlidXRlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5hbWUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zbS1mdWxsIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1wcm9kdWN0cyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Byb2R1Y3Qge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC45KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW91dGVyLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluLXRvIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0YXRpYzpub3QoLmlzLWludmlzaWJsZSkge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0LWRyb3B6b25lKCRuYW1lOiAnLmlucHV0LWRyb3B6b25lJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjYyNXJlbTtcblxuICAgICAgICAmX19hcmVhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIGRhc2hlZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA4Ljc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjEyNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZXMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGdhcDogMC4zcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUtZGVsZXRlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICB3aWR0aDogNzcuODEyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSxcbiAgICAgICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1za2lwLWxpbmsoJG5hbWU6ICcuc2tpcC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGUoKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2tpcC1saW5rO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LXZpc2libGUoKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxsZWQsXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiB3aXNobGlzdC13aWRnZXQtd2lzaGxpc3Qtc2VsZWN0b3IoJG5hbWU6ICcud2lzaGxpc3Qtc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXVsdGktZmFjdG9yLWF1dGgtbXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQoJG5hbWU6ICcubXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190eXBlLXNlbGVjdGlvbiB7XG4gICAgICAgICAgICAucmFkaW9fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgPiAubGFiZWwtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zZWFyY2gtY21zLXNvcnQoJG5hbWU6ICcuc2VhcmNoLWNtcy1zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogcmVtKDMwKSAwIHJlbSgyMCkgcmVtKDgpO1xuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQ6IGZ3KHJlZ3VsYXIpIHJlbSgxNikgLyByZW0oMjQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNlYXJjaC1jbXMtc29ydCgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbnB1dC1wbGFjZWhvbGRlcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9lZmZlY3QnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLWZpbHRlci1jYXRlZ29yeSgkbmFtZTogJy5maWx0ZXItY2F0ZWdvcnknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jYXRlZ29yeS10b2dnbGUtYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0pO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1jb2xsYXBzZWQge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGdyaWQtdGVtcGxhdGUtcm93cyk7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQtaW5uZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXJvdyB7XG4gICAgICAgICAgICAmLS1uby1jaGlsZHJlbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZW51LWl0ZW0gJl9fbWVudS1pdGVtIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBheW1lbnQtYXBwLXdpZGdldC1wYXlwYWwtYnV0dG9ucygkbmFtZTogJy5wYXlwYWwtYnV0dG9ucycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBtaW4taGVpZ2h0OiAxcmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1sb2FkaW5nIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc3Bpbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWNvbXBhcmlzb24tcGFnZS1jb21wYXJpc29uLXRhYmxlKCRuYW1lOiAnLmNvbXBhcmlzb24tdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLCBtaW5tYXgoMTByZW0sIDFmcikpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KG1pbi1jb250ZW50LCAxNXJlbSkgcmVwZWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5tYXgoMTVyZW0sIDFmcilcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm90LW5vdGF0aW9uICovXG4gICAgICAgICAgICAmOm5vdCgmLS1zaXplLTEpOm5vdCgmLS1zaXplLTIpIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDUwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4gKyAyKSAjeyRuYW1lfV9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1uYW1lLFxuICAgICAgICAgICAgJi0tYXR0cmlidXRlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5hbWUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zbS1mdWxsIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1wcm9kdWN0cyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Byb2R1Y3Qge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC45KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW91dGVyLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluLXRvIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0YXRpYzpub3QoLmlzLWludmlzaWJsZSkge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0LWRyb3B6b25lKCRuYW1lOiAnLmlucHV0LWRyb3B6b25lJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjYyNXJlbTtcblxuICAgICAgICAmX19hcmVhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIGRhc2hlZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA4Ljc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjEyNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZXMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGdhcDogMC4zcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUtZGVsZXRlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICB3aWR0aDogNzcuODEyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSxcbiAgICAgICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1za2lwLWxpbmsoJG5hbWU6ICcuc2tpcC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGUoKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2tpcC1saW5rO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LXZpc2libGUoKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxsZWQsXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiB3aXNobGlzdC13aWRnZXQtd2lzaGxpc3Qtc2VsZWN0b3IoJG5hbWU6ICcud2lzaGxpc3Qtc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXVsdGktZmFjdG9yLWF1dGgtbXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQoJG5hbWU6ICcubXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190eXBlLXNlbGVjdGlvbiB7XG4gICAgICAgICAgICAucmFkaW9fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgPiAubGFiZWwtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtY2FydC1jb25maWd1cmVkLWJ1bmRsZS1pdGVtLW5vdGUoJG5hbWU6ICcuY2FydC1jb25maWd1cmVkLWJ1bmRsZS1pdGVtLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgxOCkgcmVtKDE1KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDE3KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZm9udDogZncobGlnaHQpICRzZXR0aW5nLWZvbnQtc2l6ZS1iYXNlICRzZXR0aW5nLWZvbnQtZmFtaWx5O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtY2FydC1jb25maWd1cmVkLWJ1bmRsZS1pdGVtLW5vdGU7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1jYXJ0LWNvbmZpZ3VyZWQtYnVuZGxlLWl0ZW0tbm90ZS1hY3Rpb25zKFxuICAgICRuYW1lOiAnLmNhcnQtY29uZmlndXJlZC1idW5kbGUtaXRlbS1ub3RlLWFjdGlvbnMnXG4pIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbSgxNSk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgcmVtKDI3KSByZW0oNSkgMDtcbiAgICAgICAgICAgIGZvbnQ6IGZ3KHJlZ3VsYXIpICRzZXR0aW5nLWZvbnQtc2l6ZS1iYXNlICRzZXR0aW5nLWZvbnQtZmFtaWx5O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS00O1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHh4bC1taW4pIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LWNhcnQtY29uZmlndXJlZC1idW5kbGUtaXRlbS1ub3RlLWFjdGlvbnM7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvcigkbmFtZTogJy5jb25maWd1cmF0b3InKSB7XG4gICAgJGJvcmRlci1yYWRpdXM6IHJlbSg0KTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogcmVtKDIwKSAwIHJlbSg3MCk7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIGJvcmRlcjogcmVtKDEpIHNvbGlkICRzZXR0aW5nLWNvbG9yLWdyYXktMztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZC1taW4pIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDMwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1bW1hcnktYWN0aW9ucyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIHJlbSgyMCkgcmVtKDIwKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3IoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXNpZGViYXIoJG5hbWU6ICcuY29uZmlndXJhdG9yLXNpZGViYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgMCByZW0oNDApO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiByZW0oMSkgc29saWQgJHNldHRpbmctY29sb3ItZ3JheS0zO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsLW1pbikge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogcmVtKDEpIHNvbGlkICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR4bC1taW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXNpZGViYXIoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbXBvcnQgJy4uL2NvbmZpZ3VyZWQtYnVuZGxlL2NvbmZpZ3VyZWQtYnVuZGxlJztcblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXNlY29uZGFyeSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1zZWNvbmRhcnknKSB7XG4gICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWUpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsIGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idW5kbGUtdG90YWwge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogcmVtKC0xNik7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeHhsLW1pbikge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogcmVtKDUpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHh4bC1taW4pIHtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeHhsLW1pbikge1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdG9sYWwge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KG1lZGl1bSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXNlY29uZGFyeSgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbnB1dC1wbGFjZWhvbGRlcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9lZmZlY3QnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLWZpbHRlci1jYXRlZ29yeSgkbmFtZTogJy5maWx0ZXItY2F0ZWdvcnknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jYXRlZ29yeS10b2dnbGUtYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0pO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1jb2xsYXBzZWQge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGdyaWQtdGVtcGxhdGUtcm93cyk7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQtaW5uZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXJvdyB7XG4gICAgICAgICAgICAmLS1uby1jaGlsZHJlbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZW51LWl0ZW0gJl9fbWVudS1pdGVtIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBheW1lbnQtYXBwLXdpZGdldC1wYXlwYWwtYnV0dG9ucygkbmFtZTogJy5wYXlwYWwtYnV0dG9ucycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBtaW4taGVpZ2h0OiAxcmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1sb2FkaW5nIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc3Bpbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWNvbXBhcmlzb24tcGFnZS1jb21wYXJpc29uLXRhYmxlKCRuYW1lOiAnLmNvbXBhcmlzb24tdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLCBtaW5tYXgoMTByZW0sIDFmcikpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KG1pbi1jb250ZW50LCAxNXJlbSkgcmVwZWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5tYXgoMTVyZW0sIDFmcilcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm90LW5vdGF0aW9uICovXG4gICAgICAgICAgICAmOm5vdCgmLS1zaXplLTEpOm5vdCgmLS1zaXplLTIpIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDUwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4gKyAyKSAjeyRuYW1lfV9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1uYW1lLFxuICAgICAgICAgICAgJi0tYXR0cmlidXRlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5hbWUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zbS1mdWxsIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1wcm9kdWN0cyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Byb2R1Y3Qge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC45KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW91dGVyLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluLXRvIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0YXRpYzpub3QoLmlzLWludmlzaWJsZSkge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0LWRyb3B6b25lKCRuYW1lOiAnLmlucHV0LWRyb3B6b25lJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjYyNXJlbTtcblxuICAgICAgICAmX19hcmVhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIGRhc2hlZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA4Ljc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjEyNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZXMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGdhcDogMC4zcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUtZGVsZXRlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICB3aWR0aDogNzcuODEyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSxcbiAgICAgICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1za2lwLWxpbmsoJG5hbWU6ICcuc2tpcC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGUoKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2tpcC1saW5rO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LXZpc2libGUoKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxsZWQsXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiB3aXNobGlzdC13aWRnZXQtd2lzaGxpc3Qtc2VsZWN0b3IoJG5hbWU6ICcud2lzaGxpc3Qtc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXVsdGktZmFjdG9yLWF1dGgtbXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQoJG5hbWU6ICcubXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190eXBlLXNlbGVjdGlvbiB7XG4gICAgICAgICAgICAucmFkaW9fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgPiAubGFiZWwtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGltcG9ydCAnLi4vY29uZmlndXJlZC1idW5kbGUvY29uZmlndXJlZC1idW5kbGUnO1xuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtc2ltcGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXNpbXBsZScpIHtcbiAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZSkge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMTApO1xuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsIGRlZmF1bHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1zaW1wbGUoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb250ZW50LWJhbm5lci13aWRnZXQtYmFubmVyLWp1bWJvdHJvbigkbmFtZTogJy5iYW5uZXItanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogcmVtKDQpO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSgxNjApO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQgdG9wLCAkc2V0dGluZy1jb2xvci1ncmF5LTMsICRzZXR0aW5nLWNvbG9yLWdyYXktNCkgbm8tcmVwZWF0IGNlbnRlciAvXG4gICAgICAgICAgICAgICAgY292ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oMjQwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbSg0MDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGZvbnQ6IGZ3KGJvbGQpIHJlbSgyMykgLyAxLjUgJHNldHRpbmctZm9udC1mYW1pbHktYWRkaXRpb25hbDtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oLTAuOCk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMzQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsLW1pbikge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDU3KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgZm9udDogZncobGlnaHQpIHJlbSgxMSkgJHNldHRpbmctZm9udC1mYW1pbHk7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKDAuMik7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTYpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsLW1pbikge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDI2KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY29udGVudC1iYW5uZXItd2lkZ2V0LWJhbm5lci1qdW1ib3Ryb24oKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taGVhZGVyLW1vYmlsZSgkbmFtZTogJy5uYXZpZ2F0aW9uLWhlYWRlci1tb2JpbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IHJlbSgxKSBkb3R0ZWQgJHNldHRpbmctY29sb3ItZ3JheS0zO1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1uYXZpZ2F0aW9uLWhlYWRlci1tb2JpbGUoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC1ibG9jaygkbmFtZTogJy5vcmRlci1kZXRhaWwtYmxvY2snKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDE1KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDE1KTtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnLW1pbikge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSgyMCk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMjApO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogcmVtKDEpIGRvdHRlZCAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLWJsb2NrKCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtaGVhZGVyKCRuYW1lOiAnLm9yZGVyLWRldGFpbC1oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMjApO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDUpO1xuICAgICAgICBib3JkZXItYm90dG9tOiByZW0oMSkgZG90dGVkICRzZXR0aW5nLWNvbG9yLWdyYXktMztcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGZvbnQ6IGZ3KGJvbGQpIHJlbSgxNSkgJHNldHRpbmctZm9udC1mYW1pbHktYWRkaXRpb25hbDtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oLTAuMTcpO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtKDEwKTtcbiAgICAgICAgICAgIG1heC13aWR0aDogcmVtKDEwMCk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KGxpZ2h0KTtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oLTAuMTgpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC1oZWFkZXIoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLXBheW1lbnQoJG5hbWU6ICcub3JkZXItcGF5bWVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyMCk7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZC1taW4pIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhsaWdodCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDI4KTtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oLTAuMTgpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjdXN0b21lci1wYWdlLW9yZGVyLXBheW1lbnQoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLXN1bW1hcnkoJG5hbWU6ICcub3JkZXItc3VtbWFyeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogcmVtKDEwKSAwIHJlbSgzMCk7XG4gICAgICAgIGJvcmRlci1ib3R0b206IHJlbSgxKSBkb3R0ZWQgJHNldHRpbmctY29sb3ItZ3JheS0zO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oNDApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBmb250OiBmdyhyZWd1bGFyKSByZW0oMTQpIC8gcmVtKDE4KSAkc2V0dGluZy1mb250LWZhbWlseS1hZGRpdGlvbmFsO1xuICAgICAgICAgICAgbWFyZ2luOiByZW0oMjQpIDA7XG5cbiAgICAgICAgICAgICYtLXRvdGFsIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNSk7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogZncoYm9sZCk7XG4gICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgwLjgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjdXN0b21lci1wYWdlLW9yZGVyLXN1bW1hcnkoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLXNoaXBtZW50LWluZm9ybWF0aW9uKCRuYW1lOiAnLnNoaXBtZW50LWluZm9ybWF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZncobGlnaHQpO1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgtMC4xOCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGN1c3RvbWVyLXBhZ2Utc2hpcG1lbnQtaW5mb3JtYXRpb24oKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLXRpdGxlLWJveCgkbmFtZTogJy50aXRsZS1ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiByZW0oMSkgZG90dGVkICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgcGFkZGluZzogcmVtKDE1KSAwO1xuICAgICAgICBtYXJnaW46IHJlbSgxNSkgMDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGN1c3RvbWVyLXBhZ2UtdGl0bGUtYm94KCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZGlzY291bnQtcHJvbW90aW9uLXdpZGdldC12YXJpYW50KCRuYW1lOiAnLnZhcmlhbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBmb250OiBub3JtYWwgcmVtKDEzKSAvIDEuMzEgJHNldHRpbmctZm9udC1mYW1pbHktYWRkaXRpb25hbDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBkaXNjb3VudC1wcm9tb3Rpb24td2lkZ2V0LXZhcmlhbnQoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBkaXNjb3VudC13aWRnZXQtY2FydC1kaXNjb3VudC1mb3JtKCRuYW1lOiAnLmNhcnQtZGlzY291bnQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWNoZWNrb3V0IHtcbiAgICAgICAgICAgIG1hcmdpbjogcmVtKDE4KSAwO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogcmVtKDEpIGRvdHRlZCAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiByZW0oMSkgZG90dGVkICRzZXR0aW5nLWNvbG9yLWdyYXktMztcblxuICAgICAgICAgICAgLmdyaWQge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pbnB1dCB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiByZW0oMikgMCAwIHJlbSgyKTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDQ4KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgZGlzY291bnQtd2lkZ2V0LWNhcnQtZGlzY291bnQtZm9ybSgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbnB1dC1wbGFjZWhvbGRlcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9lZmZlY3QnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLWZpbHRlci1jYXRlZ29yeSgkbmFtZTogJy5maWx0ZXItY2F0ZWdvcnknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jYXRlZ29yeS10b2dnbGUtYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0pO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1jb2xsYXBzZWQge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGdyaWQtdGVtcGxhdGUtcm93cyk7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQtaW5uZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXJvdyB7XG4gICAgICAgICAgICAmLS1uby1jaGlsZHJlbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZW51LWl0ZW0gJl9fbWVudS1pdGVtIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBheW1lbnQtYXBwLXdpZGdldC1wYXlwYWwtYnV0dG9ucygkbmFtZTogJy5wYXlwYWwtYnV0dG9ucycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBtaW4taGVpZ2h0OiAxcmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1sb2FkaW5nIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc3Bpbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWNvbXBhcmlzb24tcGFnZS1jb21wYXJpc29uLXRhYmxlKCRuYW1lOiAnLmNvbXBhcmlzb24tdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLCBtaW5tYXgoMTByZW0sIDFmcikpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KG1pbi1jb250ZW50LCAxNXJlbSkgcmVwZWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5tYXgoMTVyZW0sIDFmcilcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm90LW5vdGF0aW9uICovXG4gICAgICAgICAgICAmOm5vdCgmLS1zaXplLTEpOm5vdCgmLS1zaXplLTIpIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDUwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4gKyAyKSAjeyRuYW1lfV9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1uYW1lLFxuICAgICAgICAgICAgJi0tYXR0cmlidXRlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5hbWUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zbS1mdWxsIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1wcm9kdWN0cyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Byb2R1Y3Qge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC45KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW91dGVyLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluLXRvIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0YXRpYzpub3QoLmlzLWludmlzaWJsZSkge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0LWRyb3B6b25lKCRuYW1lOiAnLmlucHV0LWRyb3B6b25lJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjYyNXJlbTtcblxuICAgICAgICAmX19hcmVhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIGRhc2hlZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA4Ljc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjEyNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZXMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGdhcDogMC4zcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUtZGVsZXRlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICB3aWR0aDogNzcuODEyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSxcbiAgICAgICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1za2lwLWxpbmsoJG5hbWU6ICcuc2tpcC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGUoKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2tpcC1saW5rO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LXZpc2libGUoKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxsZWQsXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiB3aXNobGlzdC13aWRnZXQtd2lzaGxpc3Qtc2VsZWN0b3IoJG5hbWU6ICcud2lzaGxpc3Qtc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXVsdGktZmFjdG9yLWF1dGgtbXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQoJG5hbWU6ICcubXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190eXBlLXNlbGVjdGlvbiB7XG4gICAgICAgICAgICAucmFkaW9fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgPiAubGFiZWwtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGdpZnQtY2FyZC13aWRnZXQtZ2lmdC1jYXJkLXBheW1lbnQtc3VtbWFyeSgkbmFtZTogJy5naWZ0LWNhcmQtcGF5bWVudC1zdW1tYXJ5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGlzdC1pdGVtIHtcbiAgICAgICAgICAgIGZvbnQ6IGZ3KHJlZ3VsYXIpIHJlbSgxNCkgJHNldHRpbmctZm9udC1mYW1pbHktYWRkaXRpb25hbDtcbiAgICAgICAgICAgIG1hcmdpbjogcmVtKDI0KSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBnaWZ0LWNhcmQtd2lkZ2V0LWdpZnQtY2FyZC1wYXltZW50LXN1bW1hcnkoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1YnNjcmlwdGlvbi1mb3JtKCRuYW1lOiAnLnN1YnNjcmlwdGlvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy10b3A6IHJlbSgxMSk7XG5cbiAgICAgICAgLmZvcm0tZmllbGQge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm0tZmllbGRfX2Vycm9yOjpiZWZvcmUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtLWZpZWxkX19lcnJvci1saXN0LFxuICAgICAgICAmX19zdWNjZXNzLFxuICAgICAgICAmX19hbGVydCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDEwKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDEyKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktc3Vic2NyaXB0aW9uLWZvcm0oKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtY2FydC1idW5kbGUtbGlzdCgkbmFtZTogJy5jYXJ0LWJ1bmRsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtKDQ0KTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDEpO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oMjUpO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IHJlbSgxKSBkb3R0ZWQgJHNldHRpbmctY29sb3ItZ3JheS0zO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiByZW0oLTM1KTtcbiAgICAgICAgICAgIGxlZnQ6IHJlbSg2MCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgbWFyZ2luOiByZW0oMjApIDA7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1heCgkc20tbWF4KSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiByZW0oMTIpIDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250OiA1MDAgcmVtKDE1KSAkc2V0dGluZy1mb250LWZhbWlseS1hZGRpdGlvbmFsO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oMjQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNjtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogcmVtKDE2KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiByZW0oMyk7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oMyk7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IHJlbSgtMTApO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWdyYXktNjtcbiAgICAgICAgICAgICAgICB0b3A6IHJlbSg5KTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1jYXJ0LWJ1bmRsZS1saXN0KCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW1wb3J0ICcuLi9jb2xvci1zZWxlY3Rvci9jb2xvci1zZWxlY3Rvcic7XG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMjQ7XG4kc2VsZWN0b3ItYm9yZGVyLXNpemU6IDM7XG5cbkBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yLXBkcCcpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbnB1dC1wbGFjZWhvbGRlcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9lZmZlY3QnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLWZpbHRlci1jYXRlZ29yeSgkbmFtZTogJy5maWx0ZXItY2F0ZWdvcnknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jYXRlZ29yeS10b2dnbGUtYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0pO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1jb2xsYXBzZWQge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGdyaWQtdGVtcGxhdGUtcm93cyk7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQtaW5uZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXJvdyB7XG4gICAgICAgICAgICAmLS1uby1jaGlsZHJlbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZW51LWl0ZW0gJl9fbWVudS1pdGVtIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBheW1lbnQtYXBwLXdpZGdldC1wYXlwYWwtYnV0dG9ucygkbmFtZTogJy5wYXlwYWwtYnV0dG9ucycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBtaW4taGVpZ2h0OiAxcmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1sb2FkaW5nIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc3Bpbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWNvbXBhcmlzb24tcGFnZS1jb21wYXJpc29uLXRhYmxlKCRuYW1lOiAnLmNvbXBhcmlzb24tdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLCBtaW5tYXgoMTByZW0sIDFmcikpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KG1pbi1jb250ZW50LCAxNXJlbSkgcmVwZWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5tYXgoMTVyZW0sIDFmcilcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm90LW5vdGF0aW9uICovXG4gICAgICAgICAgICAmOm5vdCgmLS1zaXplLTEpOm5vdCgmLS1zaXplLTIpIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDUwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4gKyAyKSAjeyRuYW1lfV9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1uYW1lLFxuICAgICAgICAgICAgJi0tYXR0cmlidXRlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5hbWUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zbS1mdWxsIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1wcm9kdWN0cyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Byb2R1Y3Qge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC45KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW91dGVyLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluLXRvIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0YXRpYzpub3QoLmlzLWludmlzaWJsZSkge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0LWRyb3B6b25lKCRuYW1lOiAnLmlucHV0LWRyb3B6b25lJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjYyNXJlbTtcblxuICAgICAgICAmX19hcmVhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIGRhc2hlZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA4Ljc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjEyNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZXMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGdhcDogMC4zcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUtZGVsZXRlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICB3aWR0aDogNzcuODEyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSxcbiAgICAgICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1za2lwLWxpbmsoJG5hbWU6ICcuc2tpcC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGUoKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2tpcC1saW5rO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LXZpc2libGUoKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxsZWQsXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiB3aXNobGlzdC13aWRnZXQtd2lzaGxpc3Qtc2VsZWN0b3IoJG5hbWU6ICcud2lzaGxpc3Qtc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXVsdGktZmFjdG9yLWF1dGgtbXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQoJG5hbWU6ICcubXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190eXBlLXNlbGVjdGlvbiB7XG4gICAgICAgICAgICAucmFkaW9fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgPiAubGFiZWwtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGltcG9ydCAnfnNsaWNrLWNhcm91c2VsL3NsaWNrL3NsaWNrLnNjc3MnO1xuXG5AbWl4aW4gcHJvZHVjdC1pbWFnZS13aWRnZXQtaW1hZ2UtZ2FsbGVyeSgkbmFtZTogJy5pbWFnZS1nYWxsZXJ5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWxwaGEtMTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2luZ2xlLWltYWdlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbSgyODApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnLW1pbikge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDQ4MCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeGwtbWluKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oNjUwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDI4MCk7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oMTUpIHJlbSgxNik7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCAtIDE7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAgICAgJi0tY29sb3ItYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnLW1pbikge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHJlbSg1MCkgcmVtKDQwKTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbSg0ODApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsLW1pbikge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgxMDApIHJlbSg3MCk7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oNjUwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR4eGwtbWluKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogcmVtKDgwKSByZW0oNTApO1xuICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDYxMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IHJlbSgyNTApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnLW1pbikge1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHByb2R1Y3QtaW1hZ2Utd2lkZ2V0LWltYWdlLWdhbGxlcnkoKTtcbiIsIi8qIFNsaWRlciAqL1xuXG4uc2xpY2stc2xpZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXk7XG4gICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnNsaWNrLWxpc3Qge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5kcmFnZ2luZyB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgY3Vyc29yOiBoYW5kO1xuICAgIH1cbn1cbi5zbGljay1zbGlkZXIgLnNsaWNrLXRyYWNrLFxuLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG5cbi5zbGljay10cmFjayB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcblxuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuXG4gICAgLnNsaWNrLWxvYWRpbmcgJiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG59XG4uc2xpY2stc2xpZGUge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gICAgW2Rpcj1cInJ0bFwiXSAmIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgICBpbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgJi5zbGljay1sb2FkaW5nIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgICYuZHJhZ2dpbmcgaW1nIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgLnNsaWNrLWluaXRpYWxpemVkICYge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAuc2xpY2stbG9hZGluZyAmIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cblxuICAgIC5zbGljay12ZXJ0aWNhbCAmIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgfVxufVxuLnNsaWNrLWFycm93LnNsaWNrLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWltYWdlLXdpZGdldC1pbWFnZS1nYWxsZXJ5LXRodW1ibmFpbCgkbmFtZTogJy5pbWFnZS1nYWxsZXJ5LXRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIGxlZnQ6IHJlbSgxMCk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHdpZHRoOiByZW0oMzYpO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogcmVtKDMxNSk7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOm5vdCguc2xpY2staW5pdGlhbGl6ZWQpICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IHJlbSgxNikgMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeHhsLW1pbikge1xuICAgICAgICAgICAgbGVmdDogcmVtKDMwKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oMSk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbSgyODApO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1heCgkbWQtbWF4KSB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHJlbSgzNik7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oMzYpO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogcmVtKDEpIHNvbGlkICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgICAgICAgICBtYXJnaW46IHJlbSg4KSAwO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRsZy1taW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiByZW0oMikgc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgI3skbmFtZX1fX2ltZyB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWxwaGEtMTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1nIHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IHJlbSgyNTApO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnLW1pbikge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuMjU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByZXYsXG4gICAgICAgICZfX25leHQge1xuICAgICAgICAgICAgcGFkZGluZzogMCAwIHJlbSgxMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByZXYge1xuICAgICAgICAgICAgcGFkZGluZzogcmVtKDEwKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICAuc2xpY2stc2xpZGUge1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgLnNsaWNrLWRvdHMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiByZW0oLTMyKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIHJlbSg0KTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDA7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiByZW0oMSkgc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogcmVtKDEpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiByZW0oNCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogcmVtKDQpO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHJlbSg0KTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbSg0KTtcbiAgICAgICAgICAgICAgICBmb250OiAwLzAgJHNldHRpbmctZm9udC1mYW1pbHk7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnNsaWNrLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc2xpY2stZGlzYWJsZWQge1xuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgIC5pY29uIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS02O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBwcm9kdWN0LWltYWdlLXdpZGdldC1pbWFnZS1nYWxsZXJ5LXRodW1ibmFpbCgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbnB1dC1wbGFjZWhvbGRlcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9lZmZlY3QnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLWZpbHRlci1jYXRlZ29yeSgkbmFtZTogJy5maWx0ZXItY2F0ZWdvcnknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jYXRlZ29yeS10b2dnbGUtYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0pO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1jb2xsYXBzZWQge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGdyaWQtdGVtcGxhdGUtcm93cyk7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQtaW5uZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXJvdyB7XG4gICAgICAgICAgICAmLS1uby1jaGlsZHJlbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZW51LWl0ZW0gJl9fbWVudS1pdGVtIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBheW1lbnQtYXBwLXdpZGdldC1wYXlwYWwtYnV0dG9ucygkbmFtZTogJy5wYXlwYWwtYnV0dG9ucycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBtaW4taGVpZ2h0OiAxcmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1sb2FkaW5nIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc3Bpbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWNvbXBhcmlzb24tcGFnZS1jb21wYXJpc29uLXRhYmxlKCRuYW1lOiAnLmNvbXBhcmlzb24tdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLCBtaW5tYXgoMTByZW0sIDFmcikpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KG1pbi1jb250ZW50LCAxNXJlbSkgcmVwZWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5tYXgoMTVyZW0sIDFmcilcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm90LW5vdGF0aW9uICovXG4gICAgICAgICAgICAmOm5vdCgmLS1zaXplLTEpOm5vdCgmLS1zaXplLTIpIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDUwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4gKyAyKSAjeyRuYW1lfV9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1uYW1lLFxuICAgICAgICAgICAgJi0tYXR0cmlidXRlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5hbWUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zbS1mdWxsIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1wcm9kdWN0cyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Byb2R1Y3Qge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC45KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW91dGVyLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluLXRvIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0YXRpYzpub3QoLmlzLWludmlzaWJsZSkge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0LWRyb3B6b25lKCRuYW1lOiAnLmlucHV0LWRyb3B6b25lJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjYyNXJlbTtcblxuICAgICAgICAmX19hcmVhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIGRhc2hlZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA4Ljc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjEyNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZXMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGdhcDogMC4zcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUtZGVsZXRlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICB3aWR0aDogNzcuODEyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSxcbiAgICAgICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1za2lwLWxpbmsoJG5hbWU6ICcuc2tpcC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGUoKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2tpcC1saW5rO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LXZpc2libGUoKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxsZWQsXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiB3aXNobGlzdC13aWRnZXQtd2lzaGxpc3Qtc2VsZWN0b3IoJG5hbWU6ICcud2lzaGxpc3Qtc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXVsdGktZmFjdG9yLWF1dGgtbXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQoJG5hbWU6ICcubXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190eXBlLXNlbGVjdGlvbiB7XG4gICAgICAgICAgICAucmFkaW9fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgPiAubGFiZWwtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1wcm9kdWN0LW9wdGlvbnMoJG5hbWU6ICcucHJvZHVjdC1vcHRpb25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oOSk7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDE4KTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IHJlbSgxKSBkb3R0ZWQgJHNldHRpbmctY29sb3ItZ3JheS0zO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0oOSk7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGxnLW1pbikge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDE4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1wcm9kdWN0LW9wdGlvbnMoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmV2aWV3LWF2ZXJhZ2UtZGlzcGxheSgkbmFtZTogJy5yZXZpZXctYXZlcmFnZS1kaXNwbGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDI3KTtcblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250OiBmdyhyZWd1bGFyKSByZW0oMTgpICRzZXR0aW5nLWZvbnQtZmFtaWx5O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0oMTIpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJG1kLW1pbikge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDIxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJldmlldy1hdmVyYWdlLWRpc3BsYXkoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmV2aWV3LWRpc3RyaWJ1dGlvbi1kaXNwbGF5KCRuYW1lOiAnLnJldmlldy1kaXN0cmlidXRpb24tZGlzcGxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg0MCk7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZC1taW4pIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg4MCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMTIpO1xuICAgICAgICAgICAgZm9udDogZncobGlnaHQpIHJlbSgxNCkgLyByZW0oMjApICRzZXR0aW5nLWZvbnQtZmFtaWx5O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE2KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Byb2dyZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCByZW0oMTcpIDAgcmVtKDIxKTtcbiAgICAgICAgICAgIHdpZHRoOiByZW0oMTAzKTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtKDIwKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHJlbSgxMCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTE7XG4gICAgICAgICAgICBib3gtc2hhZG93OiByZW0oMC41KSByZW0oMC41KSByZW0oMC41KSAwIHJnYmEoJHNldHRpbmctY29sb3ItYmxhY2ssIDAuMjQpO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Byb2dyZXNzLXN0YXR1cyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiByZW0oMTApO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0oMjApO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3IteWVsbG93O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmV2aWV3LWRpc3RyaWJ1dGlvbi1kaXNwbGF5KCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJldmlldygkbmFtZTogJy5yZXZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiByZW0oMSkgZG90dGVkICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgcGFkZGluZzogcmVtKDIwKSAwO1xuICAgICAgICBicmVhay1pbnNpZGU6IGF2b2lkO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbWQtbWluKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0oMzIpIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hdXRob3ItZGF0ZSB7XG4gICAgICAgICAgICBmb250OiBmdyhyZWd1bGFyKSByZW0oMTMpIC8gcmVtKDIzKSAkc2V0dGluZy1mb250LWZhbWlseS1hZGRpdGlvbmFsO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgcmVtKDE2KTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZC1taW4pIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNCk7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgcmVtKDEyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGZvbnQ6IGZ3KGxpZ2h0KSByZW0oMTUpIC8gcmVtKDIyKSAkc2V0dGluZy1mb250LWZhbWlseTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZC1taW4pIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbSgxNik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yZXZpZXcoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmV2aWV3LXN1bW1hcnkoJG5hbWU6ICcucmV2aWV3LXN1bW1hcnknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19hZGQtcmV2aWV3LW1vYmlsZSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDMwKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Jldmlld3Mge1xuICAgICAgICAgICAgY29sdW1uLWNvdW50OiAxO1xuICAgICAgICAgICAgY29sdW1uLWdhcDogcmVtKDMwKTtcbiAgICAgICAgICAgIG1hcmdpbjogcmVtKC0zMikgMCByZW0oNzApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJG1kLW1pbikge1xuICAgICAgICAgICAgICAgIGNvbHVtbi1jb3VudDogMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJldmlldy1zdW1tYXJ5KCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZXQtbGlzdC1wYWdlLXNldC1saXN0KCRuYW1lOiAnLnNldC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDQ4KTtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHByb2R1Y3Qtc2V0LWxpc3QtcGFnZS1zZXQtbGlzdCgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbnB1dC1wbGFjZWhvbGRlcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9lZmZlY3QnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLWZpbHRlci1jYXRlZ29yeSgkbmFtZTogJy5maWx0ZXItY2F0ZWdvcnknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jYXRlZ29yeS10b2dnbGUtYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0pO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1jb2xsYXBzZWQge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGdyaWQtdGVtcGxhdGUtcm93cyk7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQtaW5uZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXJvdyB7XG4gICAgICAgICAgICAmLS1uby1jaGlsZHJlbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZW51LWl0ZW0gJl9fbWVudS1pdGVtIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBheW1lbnQtYXBwLXdpZGdldC1wYXlwYWwtYnV0dG9ucygkbmFtZTogJy5wYXlwYWwtYnV0dG9ucycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBtaW4taGVpZ2h0OiAxcmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1sb2FkaW5nIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc3Bpbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWNvbXBhcmlzb24tcGFnZS1jb21wYXJpc29uLXRhYmxlKCRuYW1lOiAnLmNvbXBhcmlzb24tdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLCBtaW5tYXgoMTByZW0sIDFmcikpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KG1pbi1jb250ZW50LCAxNXJlbSkgcmVwZWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5tYXgoMTVyZW0sIDFmcilcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm90LW5vdGF0aW9uICovXG4gICAgICAgICAgICAmOm5vdCgmLS1zaXplLTEpOm5vdCgmLS1zaXplLTIpIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDUwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4gKyAyKSAjeyRuYW1lfV9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1uYW1lLFxuICAgICAgICAgICAgJi0tYXR0cmlidXRlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5hbWUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zbS1mdWxsIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1wcm9kdWN0cyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Byb2R1Y3Qge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC45KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW91dGVyLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluLXRvIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0YXRpYzpub3QoLmlzLWludmlzaWJsZSkge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0LWRyb3B6b25lKCRuYW1lOiAnLmlucHV0LWRyb3B6b25lJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjYyNXJlbTtcblxuICAgICAgICAmX19hcmVhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIGRhc2hlZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA4Ljc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjEyNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZXMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGdhcDogMC4zcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUtZGVsZXRlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICB3aWR0aDogNzcuODEyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSxcbiAgICAgICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1za2lwLWxpbmsoJG5hbWU6ICcuc2tpcC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGUoKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2tpcC1saW5rO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LXZpc2libGUoKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxsZWQsXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiB3aXNobGlzdC13aWRnZXQtd2lzaGxpc3Qtc2VsZWN0b3IoJG5hbWU6ICcud2lzaGxpc3Qtc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXVsdGktZmFjdG9yLWF1dGgtbXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQoJG5hbWU6ICcubXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190eXBlLXNlbGVjdGlvbiB7XG4gICAgICAgICAgICAucmFkaW9fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgPiAubGFiZWwtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2V0LXdpZGdldC1wcm9kdWN0LXNldC1zbGlkZXIoJG5hbWU6ICcucHJvZHVjdC1zZXQtc2xpZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tbXVsdGlwbGUge1xuICAgICAgICAgICAgLnNsaWNrLXNsaWRlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1tYXgoJHNtLW1heCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oMTApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNpbmdsZSB7XG4gICAgICAgICAgICAuc2xpY2stc2xpZGUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSgzMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAudGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbSgyNDApO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZC1taW4pIHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0oMzY4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWRlLXByZXYtYnRuIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgzMik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbWQtbWluKSB7XG4gICAgICAgICAgICAgICAgICAgIC5zbGljay1wcmV2IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zbGljay1wcmV2IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJG1kLW1pbikge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIHByb2R1Y3Qtc2V0LXdpZGdldC1wcm9kdWN0LXNldC1zbGlkZXIoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3Qtc2Vjb25kYXJ5KFxuICAgICRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdC1zZWNvbmRhcnknXG4pIHtcbiAgICAkaW1hZ2Utd2lkdGg6IHJlbSgxMjApO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiByZW0oMTApIHJlbSgxMCkgcmVtKDIwKSByZW0oMTApO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbWQtbWluKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0oMTUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDEwKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCRtZC1taW4pIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSgxNik7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwtd3JhcHBlciB7XG4gICAgICAgICAgICB3aWR0aDogJGltYWdlLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5mbyB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsLW1pbikge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGZvbnQ6IGZ3KG1lZGl1bSkgcmVtKDE1KSAkc2V0dGluZy1mb250LWZhbWlseS1hZGRpdGlvbmFsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2t1LFxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBmb250OiBmdyhsaWdodCkgJHNldHRpbmctZm9udC1zaXplLWJhc2UgJHNldHRpbmctZm9udC1mYW1pbHk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS00O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhdHVzIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg1KTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR4bC1taW4pIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhdHVzLFxuICAgICAgICAmX19wcmljZSxcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR4bC1taW4pIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIHJlbSg1KTtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsLW1pbikge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3Qtc2Vjb25kYXJ5KCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtcHJvZHVjdC1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtYnVuZGxlLWl0ZW0oJG5hbWU6ICcub3JkZXJlZC1idW5kbGUtaXRlbScpIHtcbiAgICAkaW1hZ2Utd2lkdGg6IHJlbSg3MCk7XG4gICAgJGltYWdlLWhlaWdodDogcmVtKDcwKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDE1KTtcblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICB3aWR0aDogJGltYWdlLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAkaW1hZ2UtaGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSgyMCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGZvbnQ6IGZ3KG1lZGl1bSkgcmVtKDE2KSAvIHJlbSgxOCkgJHNldHRpbmctZm9udC1mYW1pbHktYWRkaXRpb25hbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ncmF5LTQ7XG4gICAgICAgICAgICBmb250OiBmdyhsaWdodCkgcmVtKDE2KSAvIHJlbSgxOCkgJHNldHRpbmctZm9udC1mYW1pbHk7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKDAuMik7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGF0dXMsXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeGwtbWluKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCByZW0oNSk7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzYWxlcy1wcm9kdWN0LWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1idW5kbGUtaXRlbSgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbnB1dC1wbGFjZWhvbGRlcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9lZmZlY3QnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLWZpbHRlci1jYXRlZ29yeSgkbmFtZTogJy5maWx0ZXItY2F0ZWdvcnknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jYXRlZ29yeS10b2dnbGUtYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0pO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1jb2xsYXBzZWQge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGdyaWQtdGVtcGxhdGUtcm93cyk7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQtaW5uZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXJvdyB7XG4gICAgICAgICAgICAmLS1uby1jaGlsZHJlbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZW51LWl0ZW0gJl9fbWVudS1pdGVtIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBheW1lbnQtYXBwLXdpZGdldC1wYXlwYWwtYnV0dG9ucygkbmFtZTogJy5wYXlwYWwtYnV0dG9ucycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBtaW4taGVpZ2h0OiAxcmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1sb2FkaW5nIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc3Bpbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWNvbXBhcmlzb24tcGFnZS1jb21wYXJpc29uLXRhYmxlKCRuYW1lOiAnLmNvbXBhcmlzb24tdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLCBtaW5tYXgoMTByZW0sIDFmcikpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KG1pbi1jb250ZW50LCAxNXJlbSkgcmVwZWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5tYXgoMTVyZW0sIDFmcilcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm90LW5vdGF0aW9uICovXG4gICAgICAgICAgICAmOm5vdCgmLS1zaXplLTEpOm5vdCgmLS1zaXplLTIpIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDUwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4gKyAyKSAjeyRuYW1lfV9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1uYW1lLFxuICAgICAgICAgICAgJi0tYXR0cmlidXRlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5hbWUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zbS1mdWxsIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1wcm9kdWN0cyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Byb2R1Y3Qge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC45KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW91dGVyLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluLXRvIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0YXRpYzpub3QoLmlzLWludmlzaWJsZSkge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0LWRyb3B6b25lKCRuYW1lOiAnLmlucHV0LWRyb3B6b25lJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjYyNXJlbTtcblxuICAgICAgICAmX19hcmVhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIGRhc2hlZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA4Ljc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjEyNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZXMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGdhcDogMC4zcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUtZGVsZXRlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICB3aWR0aDogNzcuODEyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSxcbiAgICAgICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1za2lwLWxpbmsoJG5hbWU6ICcuc2tpcC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGUoKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2tpcC1saW5rO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LXZpc2libGUoKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxsZWQsXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiB3aXNobGlzdC13aWRnZXQtd2lzaGxpc3Qtc2VsZWN0b3IoJG5hbWU6ICcud2lzaGxpc3Qtc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXVsdGktZmFjdG9yLWF1dGgtbXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQoJG5hbWU6ICcubXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190eXBlLXNlbGVjdGlvbiB7XG4gICAgICAgICAgICAucmFkaW9fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgPiAubGFiZWwtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLXByb2R1Y3QtYnVuZGxlLXdpZGdldC1vcmRlcmVkLXByb2R1Y3QtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtcHJvZHVjdC1idW5kbGUnKSB7XG4gICAgJGltYWdlLXdpZHRoOiByZW0oMTIwKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogcmVtKDEpIGRvdHRlZCAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMTgpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTgpO1xuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHdpZHRoOiAkaW1hZ2Utd2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0oMTUpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbWQtbWluKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oMjApO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5mbyB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsLW1pbikge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGZvbnQ6IGZ3KG1lZGl1bSkgcmVtKDE2KSAvIHJlbSgxOCkgJHNldHRpbmctZm9udC1mYW1pbHktYWRkaXRpb25hbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NrdSxcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcbiAgICAgICAgICAgIGZvbnQ6IGZ3KGxpZ2h0KSByZW0oMTYpIC8gcmVtKDE4KSAkc2V0dGluZy1mb250LWZhbWlseTtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oMC4yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlLFxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsLW1pbikge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgcmVtKDUpO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeGwtbWluKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtcyB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiByZW0oMSkgZG90dGVkICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0oMTUpO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtKDE1KTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vcHRpb25zIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDEwKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNhbGVzLXByb2R1Y3QtYnVuZGxlLXdpZGdldC1vcmRlcmVkLXByb2R1Y3QtYnVuZGxlKCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtcmV0dXJuLXBhZ2UtcmV0dXJuLWhlYWRlci1pbmZvcm1hdGlvbigkbmFtZTogJy5yZXR1cm4taGVhZGVyLWluZm9ybWF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSg1KTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogcmVtKDEpIGRvdHRlZCAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBmb250OiBmdyhib2xkKSByZW0oMTUpICRzZXR0aW5nLWZvbnQtZmFtaWx5LWFkZGl0aW9uYWw7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKC0wLjE4KTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbSgxMCk7XG4gICAgICAgICAgICB3aWR0aDogcmVtKDEwMCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBmdyhsaWdodCk7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKC0wLjE4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2FsZXMtcmV0dXJuLXBhZ2UtcmV0dXJuLWhlYWRlci1pbmZvcm1hdGlvbigpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbnB1dC1wbGFjZWhvbGRlcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9lZmZlY3QnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLWZpbHRlci1jYXRlZ29yeSgkbmFtZTogJy5maWx0ZXItY2F0ZWdvcnknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jYXRlZ29yeS10b2dnbGUtYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0pO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1jb2xsYXBzZWQge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGdyaWQtdGVtcGxhdGUtcm93cyk7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQtaW5uZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXJvdyB7XG4gICAgICAgICAgICAmLS1uby1jaGlsZHJlbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZW51LWl0ZW0gJl9fbWVudS1pdGVtIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBheW1lbnQtYXBwLXdpZGdldC1wYXlwYWwtYnV0dG9ucygkbmFtZTogJy5wYXlwYWwtYnV0dG9ucycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBtaW4taGVpZ2h0OiAxcmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1sb2FkaW5nIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc3Bpbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWNvbXBhcmlzb24tcGFnZS1jb21wYXJpc29uLXRhYmxlKCRuYW1lOiAnLmNvbXBhcmlzb24tdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLCBtaW5tYXgoMTByZW0sIDFmcikpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KG1pbi1jb250ZW50LCAxNXJlbSkgcmVwZWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5tYXgoMTVyZW0sIDFmcilcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm90LW5vdGF0aW9uICovXG4gICAgICAgICAgICAmOm5vdCgmLS1zaXplLTEpOm5vdCgmLS1zaXplLTIpIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDUwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4gKyAyKSAjeyRuYW1lfV9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1uYW1lLFxuICAgICAgICAgICAgJi0tYXR0cmlidXRlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5hbWUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zbS1mdWxsIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1wcm9kdWN0cyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Byb2R1Y3Qge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC45KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW91dGVyLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluLXRvIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0YXRpYzpub3QoLmlzLWludmlzaWJsZSkge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0LWRyb3B6b25lKCRuYW1lOiAnLmlucHV0LWRyb3B6b25lJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjYyNXJlbTtcblxuICAgICAgICAmX19hcmVhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIGRhc2hlZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA4Ljc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjEyNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZXMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGdhcDogMC4zcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUtZGVsZXRlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICB3aWR0aDogNzcuODEyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSxcbiAgICAgICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1za2lwLWxpbmsoJG5hbWU6ICcuc2tpcC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGUoKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2tpcC1saW5rO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LXZpc2libGUoKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxsZWQsXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiB3aXNobGlzdC13aWRnZXQtd2lzaGxpc3Qtc2VsZWN0b3IoJG5hbWU6ICcud2lzaGxpc3Qtc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXVsdGktZmFjdG9yLWF1dGgtbXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQoJG5hbWU6ICcubXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190eXBlLXNlbGVjdGlvbiB7XG4gICAgICAgICAgICAucmFkaW9fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgPiAubGFiZWwtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLXJldHVybi1wYWdlLXJldHVybi1saXN0LXRpdGxlKCRuYW1lOiAnLnJldHVybi1saXN0LXRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogcmVtKDEpIGRvdHRlZCAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgIHBhZGRpbmc6IHJlbSgxNSkgMDtcbiAgICAgICAgbWFyZ2luOiByZW0oMTUpIDA7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzYWxlcy1yZXR1cm4tcGFnZS1yZXR1cm4tbGlzdC10aXRsZSgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvcmVzZXQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvY2FsYy1yZW0nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9pbnB1dC1wbGFjZWhvbGRlcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9lZmZlY3QnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvY29sb3InO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3NwYWNpbmcnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL3otaW5kZXgnO1xuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2Ryb3Bkb3duID4gJl9fZHJvcGRvd24taXRlbVtwb3NpdGlvbi1yaWdodF0ge1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbiBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1jdXN0b21lci1saXN0KCRuYW1lOiAnLmN1c3RvbWVyLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuXG4gICAgICAgICZfX2NvbnRhaW5lci1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgIEBpbmNsdWRlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJ0LXBhZ2UtcHJvZHVjdC1jYXJ0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1jYXJ0LWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLWZpbHRlci1jYXRlZ29yeSgkbmFtZTogJy5maWx0ZXItY2F0ZWdvcnknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jYXRlZ29yeS10b2dnbGUtYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0pO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1jb2xsYXBzZWQge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGdyaWQtdGVtcGxhdGUtcm93cyk7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS10YXJnZXQtaW5uZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXJvdyB7XG4gICAgICAgICAgICAmLS1uby1jaGlsZHJlbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZW51LWl0ZW0gJl9fbWVudS1pdGVtIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zdWdnZXN0aW9uLXByb2R1Y3QoJG5hbWU6ICcuc3VnZ2VzdGlvbi1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aHVtYm5haWwge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCRuYW1lOiAnLnN1bW1hcnktb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19ncmFuZC10b3RhbC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygpO1xuXG5AbWl4aW4gY21zLXNlYXJjaC1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY21zLXNlYXJjaC1wYWdlLXNvcnQgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNtcy1wYWdlLXNvcnQoJG5hbWU6ICcuc29ydCcpIHtcbiAgICBAaW5jbHVkZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLW5vdGUtd2lkZ2V0LXJlYWRvbmx5LWJ1bmRsZWQtbm90ZSgkbmFtZTogJy5yZWFkb25seS1idW5kbGVkLW5vdGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1idXR0b24nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24oJG5hbWUpIHtcbiAgICAgICAgJi0tYWRkaXRpb25hbC1pbmRlbnRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLXdoaXRlLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWRhcmssXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItbGlnaHRlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJyksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSxcbiAgICAgICAgJi0tYWN0aXZlOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgJGJhY2tncm91bmQ6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAkY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcixcbiAgICAkYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluXG4pIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci1jb2xvcjtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1tZXNzYWdlKCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyYXRvci1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXRvdGFsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2Utc2VsZWN0ZWQtcHJvZHVjdC1saXN0KCRuYW1lOiAnLnNlbGVjdGVkLXByb2R1Y3QtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgICAgICAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtdGVtcGxhdGUtbGlzdCgkbmFtZTogJy50ZW1wbGF0ZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjc1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAyLjVyZW07XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTFyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAgICAgJi0td2l0aC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1vcmRlcmVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY3VzdG9tZXItcGFnZS1vcmRlci1kZXRhaWwtdGFibGUoJG5hbWU6ICcub3JkZXItZGV0YWlsLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDU3KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgMjApO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNnJlbTtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19leHRlbnNpb24ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NpemUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBmaWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgIEBpbmNsdWRlIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHBheW1lbnQtYXBwLXdpZGdldC1wYXlwYWwtYnV0dG9ucygkbmFtZTogJy5wYXlwYWwtYnV0dG9ucycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBtaW4taGVpZ2h0OiAxcmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1sb2FkaW5nIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc3Bpbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwdWxzZS1oaWdobGlnaHQgMC40cyBsaW5lYXIgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAmX190YWJsZSxcbiAgICAgICAgJl9fdGl0bGUsXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFibGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcC11aS12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgIEBpbmNsdWRlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1idW5kbGUtd2lkZ2V0LWJ1bmRsZS1pdGVtcygkbmFtZTogJy5idW5kbGUtaXRlbXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWNvbXBhcmlzb24tcGFnZS1jb21wYXJpc29uLXRhYmxlKCRuYW1lOiAnLmNvbXBhcmlzb24tdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgICAgICZfX2xpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLCBtaW5tYXgoMTByZW0sIDFmcikpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KG1pbi1jb250ZW50LCAxNXJlbSkgcmVwZWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5tYXgoMTVyZW0sIDFmcilcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm90LW5vdGF0aW9uICovXG4gICAgICAgICAgICAmOm5vdCgmLS1zaXplLTEpOm5vdCgmLS1zaXplLTIpIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDUwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4gKyAyKSAjeyRuYW1lfV9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdC1jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1uYW1lLFxuICAgICAgICAgICAgJi0tYXR0cmlidXRlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5hbWUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zbS1mdWxsIHtcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1wcm9kdWN0cyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3Byb2R1Y3Qge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1kZXRhaWwtcGFnZS1wcm9kdWN0LWNhcm91c2VsKCRuYW1lOiAnLnByb2R1Y3QtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kY29sb3Itc2VsZWN0b3Itc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcuY29sb3Itc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yIG9wYWNpdHkpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1kZXRhaWwtY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1ncm91cC13aWRnZXQtcHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1mbGFnKCRuYW1lOiAnLmZsYWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodCwgMC45KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWdobGlnaHQsXG4gICAgICAgICYtLWhpZ2hsaWdodCAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC1sYWJlbC1ncm91cCgkbmFtZTogJy5sYWJlbC1ncm91cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQtZmxvYXRpbmc7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU6IDJyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWxhYmVsLXdpZGdldC10YWcoJG5hbWU6ICcudGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG5cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuQG1peGluIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAwICgtJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nKTtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplOiAyMHB4O1xuXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5yYXRpbmctc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc3RlcHMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLS1mdWxsIHtcbiAgICAgICAgICAgICAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZiB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IsIDEwMG1zKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcblxuICAgICAgICAgICAgJi0taGFsZi1sZWZ0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYtcmlnaHQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcDpob3ZlciA+ICZfX3N0YXIsXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgfiAmX19zdGVwID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAtLWFjdGl2ZSA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlYWRvbmx5IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucGFja2FnaW5nLXVuaXQtY2FydCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcXVpY2stYWRkLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCRuYW1lOiAnLnByb2R1Y3QtcXVpY2stYWRkLWZvcm0nKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3Qtc2VhcmNoLWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1zZWFyY2gtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0cy1saXN0KCRuYW1lOiAnLnByb2R1Y3RzLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnVsbGV0IHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlKCRuYW1lOiAnLmJhZGdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveCgkbmFtZTogJy5ib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvcmRlcmxlc3Mge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW91dGVyLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFyayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24oJG5hbWU6ICcuYnV0dG9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IgYm94LXNoYWRvdyk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogY2FsYygwLjI1cmVtICsgMXB4KSBjYWxjKDAuNXJlbSArIDFweCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taG9sbG93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1tYWluLCAwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJltkYXRhLWRpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSN7Jn0tLWhvbGxvdyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLWFjdGlvbiwgMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1jaGVja2JveCgkbmFtZTogJy5jaGVja2JveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmICsgI3skbmFtZX1fX2JveCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgJiB+ICN7JG5hbWV9X19jaGVjayB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSAmX19ib3gsXG4gICAgICAgICYtLWFjdGl2ZSAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0gJl9fYm94LFxuICAgICAgICAmLS1kaXNhYmxlZCAmX19ib3gge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWRlZmF1bHQnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGxlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtc21hbGwnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWc6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0OiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VzdCcpO1xuXG5AbWl4aW4gc2hvcC11aS1pY29uKCRuYW1lOiAnLmljb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluLXRvIDFzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQoJG5hbWU6ICcuaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluaygkbmFtZTogJy5saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktbGFiZWwoJG5hbWU6ICcubGFiZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyonO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpc3QoJG5hbWU6ICcubGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lID4gJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1idWxsZXQgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBsdXMgJl9faXRlbSB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcrJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGVydCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXJhZGlvKCRuYW1lOiAnLnJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgJl9fYm94LFxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWxlY3QoJG5hbWU6ICcuc2VsZWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICAgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXJldCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQsXG4gICAgICAgICYtLWV4cGFuZCAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2NhcmV0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGFibGUoJG5hbWU6ICcudGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0aGVhZCxcbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSxcbiAgICAgICAgJl9fYm9keSB7XG4gICAgICAgICAgICB0cjpub3QoI3skbmFtZX1fX3Jvdy0tYmFja2dyb3VuZ2xlc3MpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgJi0tYmFja2dyb3VuZ2xlc3Mge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy15LXNtYWxsIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmctYm90dG9tLXJlc2V0IHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGV4dGFyZWEoJG5hbWU6ICcudGV4dGFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGh1bWJuYWlsKCRuYW1lOiAnLnRodW1ibmFpbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgIG1hcmdpbjogMC41cmVtO1xuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aG91dC1zcGFjZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aXRsZSgkbmFtZTogJy50aXRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRpIGluICgxLCAyLCAzLCA0LCA1LCA2KSB7XG4gICAgICAgICAgICAmLS1oI3skaX0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoJGkpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KCRpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctZm9udC13ZWlnaHQge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgJi0tI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS11cHBlcmNhc2Uge1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbS1kaXZpZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDAuMDYzcmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWN0aW9uLWJhcigkbmFtZTogJy5hY3Rpb24tYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwLjgxM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC44MTNyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWFkZC10by1jYXJ0KCRuYW1lOiAnLmFqYXgtYWRkLXRvLWNhcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1sb2FkZXIoJG5hbWU6ICcuYWpheC1sb2FkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVyLCAwLjUpO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluLXRvO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNvbGlkLWJnIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnICZfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1keW5hbWljIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtZHluYW1pYy1sb2FkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aWV3cG9ydC1jZW50ZXJlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgI3skbmFtZX1fX2xheW91dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0YXRpYzpub3QoLmlzLWludmlzaWJsZSkge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWxlcnQoJG5hbWU6ICcuYWxlcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMS4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBkZWZhdWx0KSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodC1ibHVlO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibHVlO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYXV0b2NvbXBsZXRlLWZvcm0oJG5hbWU6ICcuYXV0b2NvbXBsZXRlLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VnZ2VzdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnJlYWRjcnVtYi1zdGVwKCRuYW1lOiAnLmJyZWFkY3J1bWItc3RlcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZm9ybSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQ6bm90KCYtLWFjdGl2ZSkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY2FyZCgkbmFtZTogJy5jYXJkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RyZXRjaCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtY291bnRlcigkbmFtZTogJy5jYXJ0LWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXIoJG5hbWU6ICcuY2FydC1pdGVtcy1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktY29sbGFwc2libGUtbGlzdCgkbmFtZTogJy5jb2xsYXBzaWJsZS1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXNob3cpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtaGlkZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0O1xuXG5AbWl4aW4gc2hvcC11aS1lbmRsZXNzLXNjcm9sbCgkbmFtZTogJy5lbmRsZXNzLXNjcm9sbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJl9fc2Nyb2xsLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sb2FkZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlKCRuYW1lOiAnLmZsYXNoLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihtYXgtaGVpZ2h0IG9wYWNpdHkgdmlzaWJpbGl0eSwgNTAwbXMpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKSwgMC45Nyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mbGFzaC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKSwgMC45Nyk7XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19tZXNzYWdlIHtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbiRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm0oJG5hbWU6ICcuZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZHMge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZzogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZHMge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHRlbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZvcm1hdHRlZC1udW1iZXItaW5wdXQoJG5hbWU6ICcuZm9ybWF0dGVkLW51bWJlci1pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3AtdWktaW5wdXQoI3skbmFtZX1fX2lucHV0KTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0LWRyb3B6b25lKCRuYW1lOiAnLmlucHV0LWRyb3B6b25lJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjYyNXJlbTtcblxuICAgICAgICAmX19hcmVhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIGRhc2hlZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA4Ljc1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjEyNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZXMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGdhcDogMC4zcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUtZGVsZXRlIHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1qdW1ib3Ryb24oJG5hbWU6ICcuanVtYm90cm9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1jb21tYS1uZXdsaW5lLWFmdGVyICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgICAgIHRvIGxlZnQgdG9wLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKSxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNlbnRlci9jb3ZlciBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZGxpbmUsXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1sYXp5LWltYWdlKCRuYW1lOiAnLmxhenktaW1hZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYXMtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3ZlcmxheSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItaW1hZ2Utb3ZlcmxheTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICAmLS10aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYmFja2dyb3VuZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLW92ZXJsYXkoJG5hbWU6ICcubWFpbi1vdmVybGF5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itb3ZlcmxheTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktb3ZlcmxheTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tcG9wdXAoJG5hbWU6ICcubWFpbi1wb3B1cCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI4Ljc1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktcG9wdXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICB3aWR0aDogNzcuODEyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAxLjVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2VsZXNzIHtcbiAgICAgICAgICAgICN7JG5hbWV9X19oZWFkIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9wZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZsZXgtY29udGVudCB7XG4gICAgICAgICAgICAjeyRuYW1lfV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWVudSgkbmFtZTogJy5tZW51Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktbGlzdCgkbmFtZSkge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChyZWd1bGFyKTtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tbGlzdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duID4gI3skbmFtZX1fX2l0ZW0taW5uZXIsXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgPiAjeyRuYW1lfSxcbiAgICAgICAgICAgICAgICAmOmhhcyg6Zm9jdXMtdmlzaWJsZSkgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9ID4gI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICY6bm90KCYtLWhvcml6b250YWwtbGluZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnfCc7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taG9yaXpvbnRhbC1saW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbW9uZXktcHJpY2UoJG5hbWU6ICcubW9uZXktcHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1pY29uLWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1pY29uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpbGV2ZWwoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aWxldmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbS0taGFzLWNoaWxkcmVuLWRyb3Bkb3duOmhvdmVyIHtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYWdpbmF0aW9uKCRuYW1lOiAnLnBhZ2luYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcigkbmFtZTogJy5wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAzLjEyNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjMxMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5kaWNhdG9yLWxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHdlYWtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHdhcm5pbmcpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIG1lZGl1bVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAzLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgc3Ryb25nXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDQsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB2ZXJ5LXN0cm9uZ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FkZGl0aW9uYWwtbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAmLS13ZWFrLFxuICAgICAgICAgICAgJi0tbWVkaXVtLFxuICAgICAgICAgICAgJi0tc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoJGxlbmd0aCwgJGNvbG9yLCAkbmFtZSwgJG1vZGlmaWVyKSB7XG4gICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcblxuICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLSN7JG1vZGlmaWVyfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2V0dGluZy1idXR0b24td2lkdGg6IDEuODc1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1maWVsZCgkbmFtZTogJy5wYXNzd29yZC1maWVsZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRuYW1lfV9faW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skbmFtZX1fX2ljb24taGlkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zaG93biB7XG4gICAgICAgICAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uLXNob3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24taGlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByaWNlKCRuYW1lOiAnLnByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtY2FyZCgkbmFtZTogJy5wcm9kdWN0LWNhcmQnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jYXJkKCRuYW1lKSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMy41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmdsZXNzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucy1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZTogJy5wcm9kdWN0LWl0ZW0tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWxpc3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWxpc3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKiBmZS1zbmlmZmVyOmRpc2FibGVkIGNvcnJlY3Qtc2Nzcy1jb21wb25lbnQtc3RydWN0dXJlICovXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMoJG5hbWU6ICcucXVvdGUtc3RhdHVzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcblxuICAgICAgICAmLS13YWl0aW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignd2FybmluZycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3N1Y2Nlc3MnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdhbGVydCcsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjE1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKSwgMTApLCAkb3BhY2l0eSk7XG4gICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvcik7XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2Ugc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5KTtcblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1zZWFyY2gtZm9ybSgkbmFtZTogJy5zZWFyY2gtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWJtaXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWcnKTtcblxuQG1peGluIHNob3AtdWktc2ltcGxlLWNhcm91c2VsKCRuYW1lOiAnLnNpbXBsZS1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdmlldyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NsaWRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcyk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdHMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciwgMTUwbXMpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19hcnJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0LCAwLjc1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNpbmdsZS1idXR0b24tZm9ybSgkbmFtZTogJy5zaW5nbGUtYnV0dG9uLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1za2lwLWxpbmsoJG5hbWU6ICcuc2tpcC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGUoKTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2tpcC1saW5rO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LXZpc2libGUoKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDAuMDYyNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3RhdHVzKCRuYW1lOiAnLnN0YXR1cycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlKCRuYW1lKSB7XG4gICAgICAgICYtLXJlamVjdGVkLFxuICAgICAgICAmLS1pbi1wcm9ncmVzcyxcbiAgICAgICAgJi0tcmVmdW5kZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQsXG4gICAgICAgICYtLXJlYWR5LFxuICAgICAgICAmLS1wYWlkLFxuICAgICAgICAmLS1kZWxpdmVyZWQsXG4gICAgICAgICYtLWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBlbmRpbmcsXG4gICAgICAgICYtLXdhaXRpbmcsXG4gICAgICAgICYtLXBheW1lbnQtcGVuZGluZyxcbiAgICAgICAgJi0tY29uZmlybWVkLFxuICAgICAgICAmLS1zZW50LXRvLW1lcmNoYW50LFxuICAgICAgICAmLS1zaGlwcGVkLWJ5LW1lcmNoYW50LFxuICAgICAgICAmLS1leHBvcnRlZCxcbiAgICAgICAgJi0tbm90LWNvbmZpZ3VyZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNsb3NlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VzdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jYW5jZWxsZWQsXG4gICAgICAgICYtLWNhbmNlbGVkLFxuICAgICAgICAmLS1yZWFkeS1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm5lZCxcbiAgICAgICAgJi0td2FpdGluZy1mb3ItcmV0dXJuLFxuICAgICAgICAmLS1yZXR1cm4tY2FuY2VsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRyYWZ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS10ZXh0LWJvbGQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdWdnZXN0LXNlYXJjaCgkbmFtZTogJy5zdWdnZXN0LXNlYXJjaCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzByZW07XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMS45MjVyZW07XG5cbiAgICAgICAgICAgICYtLXRyYW5zcGFyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLWNoZWNrYm94KCRuYW1lOiAnLnRvZ2dsZXItY2hlY2tib3gnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItcmFkaW8oJG5hbWU6ICcudG9nZ2xlci1yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXJhZGlvKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU6IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlKCRuYW1lOiAnLnRvb2x0aXAtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgc21hbGwpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAjeyRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplfSk7XG4gICAgICAgICAgICBib3R0b206IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemUgc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259ICZfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgJi0tI3skYWN0aW9ufSAmX19hcnJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWhlYWRlcigkbmFtZTogJy5oZWFkZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyO1xuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLW1pZGRsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLXRvcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAzO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLXRvcCgkbmFtZTogJy5uYXZpZ2F0aW9uLXRvcCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbmF2aWdhdGlvbi10b3A7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1ub3RpZmljYXRpb24tYXJlYSgkbmFtZTogJy5ub3RpZmljYXRpb24tYXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktbm90aWZpY2F0aW9uLWFyZWE7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zZWN0aW9uKCRuYW1lOiAnLnNlY3Rpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoOiAxNXJlbTtcblxuQG1peGluIHNob3AtdWktc2lkZS1kcmF3ZXIoJG5hbWU6ICcuc2lkZS1kcmF3ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNpZGUtZHJhd2VyO1xuXG4gICAgICAgICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG9wYWNpdHkgdmlzaWJpbGl0eSByaWdodCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICByaWdodDogLSRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLXNpZGUtZHJhd2VyLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYmc7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaG93ICZfX2RyYXdlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZWFyY2gtdGFiLWJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbkBtaXhpbiB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXB4KTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNhdGFsb2ctcGFnZS1zZWFyY2gtdGFicygkbmFtZTogJy5zZWFyY2gtdGFicycpIHtcbiAgICBAaW5jbHVkZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiB3aXNobGlzdC13aWRnZXQtd2lzaGxpc3Qtc2VsZWN0b3IoJG5hbWU6ICcud2lzaGxpc3Qtc2VsZWN0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gbXVsdGktZmFjdG9yLWF1dGgtbXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQoJG5hbWU6ICcubXVsdGktZmFjdG9yLWF1dGhlbnRpY2F0aW9uLWNvbnRlbnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190eXBlLXNlbGVjdGlvbiB7XG4gICAgICAgICAgICAucmFkaW9fX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgPiAubGFiZWwtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLXJldHVybi1wYWdlLXJldHVybi1vdmVydmlldygkbmFtZTogJy5yZXR1cm4tb3ZlcnZpZXcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX190aXRsZS1ibG9jayB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDE1KTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxNSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSgyMCk7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDIwKTtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiByZW0oMSkgZG90dGVkICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX292ZXJ2aWV3LWluZm8ge1xuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyMCk7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDUpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogcmVtKDEpIGRvdHRlZCAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGZvbnQ6IGZ3KGJvbGQpIHJlbSgxNSkgJHNldHRpbmctZm9udC1mYW1pbHktYWRkaXRpb25hbDtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oLTAuMTcpO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtKDEwKTtcbiAgICAgICAgICAgIHdpZHRoOiByZW0oMTAwKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGZ3KGxpZ2h0KTtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oLTAuMTgpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzYWxlcy1yZXR1cm4tcGFnZS1yZXR1cm4tb3ZlcnZpZXcoKTtcbiIsIkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3NoYXJlZCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL3Jlc2V0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2ZvbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvaW5wdXQtcGxhY2Vob2xkZXInO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2JyZWFrcG9pbnQnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vLi4vLi4vU2hvcFVpL1RoZW1lL2RlZmF1bHQvc3R5bGVzL3NldHRpbmdzL2NvbG9yJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9ncmlkJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9zcGFjaW5nJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1yZXR1cm4tcGFnZS1yZXR1cm4tcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnJldHVybi1wcm9kdWN0LWl0ZW0nKSB7XG4gICAgJGltYWdlLXdpZHRoOiByZW0oMTIwKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogcmVtKDEpIGRvdHRlZCAkc2V0dGluZy1jb2xvci1ncmF5LTM7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMTgpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTgpO1xuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHdpZHRoOiAkaW1hZ2Utd2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0oMTUpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbWQtbWluKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0oMjApO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5mbyB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJHhsLW1pbikge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIGZvbnQ6IGZ3KG1lZGl1bSkgcmVtKDE2KSAvIHJlbSgxOCkgJHNldHRpbmctZm9udC1mYW1pbHktYWRkaXRpb25hbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NrdSxcbiAgICAgICAgJl9fcXVhbnRpdHkge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWdyYXktNDtcbiAgICAgICAgICAgIGZvbnQ6IGZ3KGxpZ2h0KSByZW0oMTYpIC8gcmVtKDE4KSAkc2V0dGluZy1mb250LWZhbWlseTtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oMC4yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXR1cyB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oNSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeGwtbWluKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXR1cyxcbiAgICAgICAgJl9fcHJpY2UsXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkeGwtbWluKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCByZW0oNSk7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKCR4bC1taW4pIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtb3B0aW9ucyB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbSgxMCk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzYWxlcy1yZXR1cm4tcGFnZS1yZXR1cm4tcHJvZHVjdC1pdGVtKCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtcmV0dXJuLXBhZ2UtcmV0dXJuLXRpdGxlLWJsb2NrKCRuYW1lOiAnLnJldHVybi10aXRsZS1ibG9jaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0oMTUpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMTUpO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtKDIwKTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyMCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiByZW0oMSkgZG90dGVkICRzZXR0aW5nLWNvbG9yLWdyYXktMztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgc2FsZXMtcmV0dXJuLXBhZ2UtcmV0dXJuLXRpdGxlLWJsb2NrKCk7XG4iLCJAaW1wb3J0ICd+U2hvcFVpL3N0eWxlcy9zaGFyZWQnO1xuXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9jYWxjLXJlbSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvaGVscGVycy9mb250JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9oZWxwZXJzL2VmZmVjdCc7XG5cbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9icmVha3BvaW50JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uLy4uLy4uL1Nob3BVaS9UaGVtZS9kZWZhdWx0L3N0eWxlcy9zZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZm9udCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3MvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi8uLi8uLi9TaG9wVWkvVGhlbWUvZGVmYXVsdC9zdHlsZXMvc2V0dGluZ3Mvei1pbmRleCc7XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigkbmFtZTogJy5hZ2VudC1uYXZpZ2F0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZHJvcGRvd24gPiAmX19kcm9wZG93bi1pdGVtW3Bvc2l0aW9uLXJpZ2h0XSB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24oKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWN1c3RvbWVyLWxpc3QoJG5hbWU6ICcuY3VzdG9tZXItbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG5cbiAgICAgICAgJl9fY29udGFpbmVyLWl0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGFnZW50LXdpZGdldC1hZ2VudC1jb250cm9sLWJhciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gYWdlbnQtY29udHJvbC1iYXIoJG5hbWU6ICcuYWdlbnQtY29udHJvbC1iYXInKSB7XG4gICAgQGluY2x1ZGUgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhcnQtcGFnZS1wcm9kdWN0LWNhcnQtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWNhcnQtaXRlbScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2UtZmlsdGVyLWNhdGVnb3J5KCRuYW1lOiAnLmZpbHRlci1jYXRlZ29yeScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NhdGVnb3J5LXRvZ2dsZS1idXR0b24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWNvbGxhcHNlZCB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oZ3JpZC10ZW1wbGF0ZS1yb3dzKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcblxuICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhdGVnb3J5LXRhcmdldC1pbm5lciB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktcm93IHtcbiAgICAgICAgICAgICYtLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX21lbnUtaXRlbSAmX19tZW51LWl0ZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXN1Z2dlc3Rpb24tcHJvZHVjdCgkbmFtZTogJy5zdWdnZXN0aW9uLXByb2R1Y3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1ibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoJG5hbWU6ICcuc3VtbWFyeS1vdmVydmlldycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2dyYW5kLXRvdGFsLXByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQGluY2x1ZGUgY2hlY2tvdXQtcGFnZS1zdW1tYXJ5LW92ZXJ2aWV3KCk7XG5cbkBtaXhpbiBjbXMtc2VhcmNoLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29sOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjbXMtc2VhcmNoLXBhZ2Utc29ydCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY21zLXBhZ2Utc29ydCgkbmFtZTogJy5zb3J0Jykge1xuICAgIEBpbmNsdWRlIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtbm90ZS13aWRnZXQtcmVhZG9ubHktYnVuZGxlZC1ub3RlKCRuYW1lOiAnLnJlYWRvbmx5LWJ1bmRsZWQtbm90ZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24oJG5hbWU6ICcuY29uZmlndXJhdG9yLWJ1dHRvbicpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbigkbmFtZSkge1xuICAgICAgICAmLS1hZGRpdGlvbmFsLWluZGVudGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JylcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3Itd2hpdGUsXG4gICAgICAgICAgICAgICAgJHNldHRpbmctY29sb3ItZGFyayxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1saWdodGVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlbGVjdGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAmLS1hY3RpdmU6aG92ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAkYmFja2dyb3VuZDogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICRjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyLFxuICAgICRib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW5cbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLW1lc3NhZ2UoJG5hbWU6ICcuY29uZmlndXJhdG9yLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JylcbiAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJhdG9yLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJlZC1idW5kbGUtdG90YWwoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtdG90YWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1zZWxlY3RlZC1wcm9kdWN0LWxpc3QoJG5hbWU6ICcuc2VsZWN0ZWQtcHJvZHVjdC1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faGVhZGVyIHtcbiAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdyZXNldCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICAgIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS10ZW1wbGF0ZS1saXN0KCRuYW1lOiAnLnRlbXBsYXRlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktY2xlYXJmaXg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNzVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIDIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICAgICAmLS13aXRoLWJhY2tncm91bmQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLW9yZGVyZWQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMTg4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjdXN0b21lci1wYWdlLW9yZGVyLWRldGFpbC10YWJsZSgkbmFtZTogJy5vcmRlci1kZXRhaWwtdGFibGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGZpbGUtbWFuYWdlci13aWRnZXQtZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDguNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSwgNTcpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCAyMCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2cmVtO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2V4dGVuc2lvbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2l6ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGZpbGUtZG93bmxvYWQtbGluaygkbmFtZTogJy5maWxlLWRvd25sb2FkLWxpbmsnKSB7XG4gICAgQGluY2x1ZGUgZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcGF5bWVudC1hcHAtd2lkZ2V0LXBheXBhbC1idXR0b25zKCRuYW1lOiAnLnBheXBhbC1idXR0b25zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zcGlubmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWxvYWRpbmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zcGlubmVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWxvYWRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgICAgICAgICAgICYtLWhpZ2hsaWdodGVkIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHB1bHNlLWhpZ2hsaWdodCAwLjRzIGxpbmVhciAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZSgkbmFtZTogJy52b2x1bWUtcHJpY2UnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICZfX3RhYmxlLFxuICAgICAgICAmX190aXRsZSxcbiAgICAgICAgJl9fY2VsbCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWJsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wLXVpLXZvbHVtZS1wcmljZS10YWJsZSgkbmFtZTogJy52b2x1bWUtcHJpY2UtdGFibGUnKSB7XG4gICAgQGluY2x1ZGUgcHJpY2UtcHJvZHVjdC12b2x1bWUtd2lkZ2V0LXZvbHVtZS1wcmljZS10YWJsZSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWJ1bmRsZS13aWRnZXQtYnVuZGxlLWl0ZW1zKCRuYW1lOiAnLmJ1bmRsZS1pdGVtcycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtY29tcGFyaXNvbi1wYWdlLWNvbXBhcmlzb24tdGFibGUoJG5hbWU6ICcuY29tcGFyaXNvbi10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29tcGFyaXNvbi1yZXBlYXQtY29sdW1ucywgMSksIG1pbm1heCgxMHJlbSwgMWZyKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgobWluLWNvbnRlbnQsIDE1cmVtKSByZXBlYXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbm1heCgxNXJlbSwgMWZyKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1ub3Qtbm90YXRpb24gKi9cbiAgICAgICAgICAgICY6bm90KCYtLXNpemUtMSk6bm90KCYtLXNpemUtMikge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNTByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpICN7JG5hbWV9X19saXN0LWNlbGwge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19saXN0LWNlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG5cbiAgICAgICAgICAgICYtLW5hbWUsXG4gICAgICAgICAgICAmLS1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmFtZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNtLWZ1bGwge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByb2R1Y3RzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWRldGFpbC1wYWdlLXByb2R1Y3QtY2Fyb3VzZWwoJG5hbWU6ICcucHJvZHVjdC1jYXJvdXNlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRjb2xvci1zZWxlY3Rvci1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5jb2xvci1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3Igb3BhY2l0eSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGNvbG9yLXNlbGVjdG9yLXNpemU7XG4gICAgICAgICAgICBib3JkZXI6IDAuMTI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWRldGFpbC1jb2xvci1zZWxlY3RvcicpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LWdyb3VwLXdpZGdldC1jb2xvci1zZWxlY3RvcigkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LWdyb3VwLXdpZGdldC1wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3IoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWZsYWcoJG5hbWU6ICcuZmxhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCh0aWdodCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0LCAwLjkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZ2hsaWdodCxcbiAgICAgICAgJi0taGlnaGxpZ2h0ICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LWxhYmVsLWdyb3VwKCRuYW1lOiAnLmxhYmVsLWdyb3VwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudC1mbG9hdGluZztcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTogMnJlbTtcblxuQG1peGluIHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZygkbmFtZTogJy50YWcnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNjBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdC1wYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG5AbWl4aW4gcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCgkbmFtZTogJy5zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDAgKC0kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcpO1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAkc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmcgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1vcHRpb24td2lkZ2V0LXNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU6IDIwcHg7XG5cbkBtaXhpbiBwcm9kdWN0LXJldmlldy13aWRnZXQtcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnJhdGluZy1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zdGVwcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBkaXJlY3Rpb246IHJ0bDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYtLWZ1bGwge1xuICAgICAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmIHtcbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvciwgMTAwbXMpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuXG4gICAgICAgICAgICAmLS1oYWxmLWxlZnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFsZi1yaWdodCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjey0kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwOmhvdmVyID4gJl9fc3RhcixcbiAgICAgICAgJl9fc3RlcDpob3ZlciB+ICZfX3N0ZXAgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcC0tYWN0aXZlID4gJl9fc3RhciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVhZG9ubHkge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3RvcigkbmFtZTogJy5wYWNrYWdpbmctdW5pdC1jYXJ0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1xdWljay1hZGQtd2lkZ2V0LXByb2R1Y3QtcXVpY2stYWRkLWZvcm0oJG5hbWU6ICcucHJvZHVjdC1xdWljay1hZGQtZm9ybScpIHtcbiAgICBAaW5jbHVkZSBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1zZWFyY2gtaXRlbSgkbmFtZTogJy5wcm9kdWN0LXNlYXJjaC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1zZWFyY2gtd2lkZ2V0LXByb2R1Y3RzLWxpc3QoJG5hbWU6ICcucHJvZHVjdHMtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19idWxsZXQge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZSgkbmFtZTogJy5vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMy4zMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYmFkZ2UoJG5hbWU6ICcuYmFkZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYm94KCRuYW1lOiAnLmJveCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm9yZGVybGVzcyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3V0ZXItc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1ib3gtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJ1dHRvbigkbmFtZTogJy5idXR0b24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciBib3gtc2hhZG93KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDAuMjVyZW0gKyAxcHgpIGNhbGMoMC41cmVtICsgMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob2xsb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCByZ2JhKCRzZXR0aW5nLWNvbG9yLW1haW4sIDAuNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJ1dHRvbi1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmW2RhdGEtZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259I3smfS0taG9sbG93IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItYWN0aW9uLCAwLjcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNoZWNrYm94KCRuYW1lOiAnLmNoZWNrYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAwLjc1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgICYgKyAjeyRuYW1lfV9fYm94IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAmIH4gI3skbmFtZX1fX2NoZWNrIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19ib3gge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlICZfX2JveCxcbiAgICAgICAgJi0tYWN0aXZlICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSAmX19ib3gsXG4gICAgICAgICYtLWRpc2FibGVkICZfX2JveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtZGVmYXVsdCcpO1xuJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbGVyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGw6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1zbWFsbCcpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZzogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlcicpO1xuJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1iaWdnZXN0Jyk7XG5cbkBtaXhpbiBzaG9wLXVpLWljb24oJG5hbWU6ICcuaWNvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VzdCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb246IHNwaW4tdG8gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dCgkbmFtZTogJy5pbnB1dCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgfVxuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saW5rKCRuYW1lOiAnLmxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmstYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1sYWJlbCgkbmFtZTogJy5sYWJlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICYtLXJlcXVpcmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGlzdCgkbmFtZTogJy5saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgICAgICYgPiAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgPiAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJ1bGxldCAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGx1cyAmX19pdGVtIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJysnO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsZXJ0IHtcbiAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcmFkaW8oJG5hbWU6ICcucmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1jaGVja2JveCgkbmFtZSkge1xuICAgICAgICAmX19ib3gsXG4gICAgICAgICZfX2NoZWNrIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlbGVjdCgkbmFtZTogJy5zZWxlY3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgICAgICAmX19zZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogMC4yNXJlbSBzb2xpZCAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NhcmV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCxcbiAgICAgICAgJi0tZXhwYW5kICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmFrZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3IgJl9fY2FyZXQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10YWJsZSgkbmFtZTogJy50YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHRoZWFkLFxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5LFxuICAgICAgICAmX19ib2R5IHtcbiAgICAgICAgICAgIHRyOm5vdCgjeyRuYW1lfV9fcm93LS1iYWNrZ3JvdW5nbGVzcykge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjI1cmVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3JvdyB7XG4gICAgICAgICAgICAmLS1iYWNrZ3JvdW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLXktc21hbGwge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3BhY2luZy1ib3R0b20tcmVzZXQge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10ZXh0YXJlYSgkbmFtZTogJy50ZXh0YXJlYScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10aHVtYm5haWwoJG5hbWU6ICcudGh1bWJuYWlsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07XG5cbiAgICAgICAgJi0tc21hbGxlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZ2dlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRob3V0LXNwYWNlcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRpdGxlKCRuYW1lOiAnLnRpdGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGVhY2ggJGkgaW4gKDEsIDIsIDMsIDQsIDUsIDYpIHtcbiAgICAgICAgICAgICYtLWgjeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZSgkaSk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQoJGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1mb250LXdlaWdodCB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICAmLS0jeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXVwcGVyY2FzZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tLWRpdmlkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMC4wNjNyZW0gc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hY3Rpb24tYmFyKCRuYW1lOiAnLmFjdGlvbi1iYXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBtYXJnaW46IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDAuODEzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjgxM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtYWRkLXRvLWNhcnQoJG5hbWU6ICcuYWpheC1hZGQtdG8tY2FydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hamF4LWxvYWRlcigkbmFtZTogJy5hamF4LWxvYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbigpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXIsIDAuNSk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tdG87XG4gICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29saWQtYmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcgJl9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWR5bmFtaWMge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1keW5hbWljLWxvYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpZXdwb3J0LWNlbnRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fbGF5b3V0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdGljOm5vdCguaXMtaW52aXNpYmxlKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hbGVydCgkbmFtZTogJy5hbGVydCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGRlZmF1bHQpIDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0LWJsdWU7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsdWU7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1hdXRvY29tcGxldGUtZm9ybSgkbmFtZTogJy5hdXRvY29tcGxldGUtZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19zdWdnZXN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1icmVhZGNydW1iLXN0ZXAoJG5hbWU6ICcuYnJlYWRjcnVtYi1zdGVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19mb3JtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNhYmxlZDpub3QoJi0tYWN0aXZlKSB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jYXJkKCRuYW1lOiAnLmNhcmQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdHJldGNoIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1jb3VudGVyKCRuYW1lOiAnLmNhcnQtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1pbi13aWR0aDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdzbWFsbCcpO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplOiAxLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlcigkbmFtZTogJy5jYXJ0LWl0ZW1zLWNvdW50ZXInKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19xdWFudGl0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1jb2xsYXBzaWJsZS1saXN0KCRuYW1lOiAnLmNvbGxhcHNpYmxlLWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtc2hvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oaWRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24tY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3Q7XG5cbkBtaXhpbiBzaG9wLXVpLWVuZGxlc3Mtc2Nyb2xsKCRuYW1lOiAnLmVuZGxlc3Mtc2Nyb2xsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmX19zY3JvbGwtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xvYWRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UoJG5hbWU6ICcuZmxhc2gtbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKG1heC1oZWlnaHQgb3BhY2l0eSB2aXNpYmlsaXR5LCA1MDBtcyk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pLCAwLjk3KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDhyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWZsYXNoLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pLCAwLjk3KTtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX21lc3NhZ2Uge1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW46IDAuNXJlbTtcblxuQG1peGluIHNob3AtdWktZm9ybSgkbmFtZTogJy5mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWVsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dGVuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZm9ybWF0dGVkLW51bWJlci1pbnB1dCgkbmFtZTogJy5mb3JtYXR0ZWQtbnVtYmVyLWlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1pbnB1dCgjeyRuYW1lfV9faW5wdXQpO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktaW5wdXQtZHJvcHpvbmUoJG5hbWU6ICcuaW5wdXQtZHJvcHpvbmUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNjI1cmVtO1xuXG4gICAgICAgICZfX2FyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gZGFzaGVkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDguNzVyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuMTI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogMC42MjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjYyNXJlbTtcblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICAgICAgICAgICAgZ2FwOiAwLjNyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZS1kZWxldGUge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWp1bWJvdHJvbigkbmFtZTogJy5qdW1ib3Ryb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNvbW1hLW5ld2xpbmUtYWZ0ZXIgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gbGVmdCB0b3AsXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pLFxuICAgICAgICAgICAgICAgICAgICBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkbGluZSxcbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAzcHggJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N1Yi1oZWFkbGluZSB7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhenktaW1hZ2UoJG5hbWU6ICcubGF6eS1pbWFnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1taW4tc2l6ZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhcy1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1vdmVybGF5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1pbWFnZS1vdmVybGF5O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgICYtLXRodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWNvbG9yLWxpZ2h0IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1haW4tb3ZlcmxheSgkbmFtZTogJy5tYWluLW92ZXJsYXknKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1vdmVybGF5O1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1vdmVybGF5O1xuXG4gICAgICAgICYtLXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1wb3B1cCgkbmFtZTogJy5tYWluLXBvcHVwJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMjguNzVyZW07XG4gICAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1wb3B1cDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAmLS13aWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiA3Ny44MTI1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faGVhZCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpIDEuNXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZWxlc3Mge1xuICAgICAgICAgICAgI3skbmFtZX1fX2hlYWQge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tb3BlbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZmxleC1jb250ZW50IHtcbiAgICAgICAgICAgICN7JG5hbWV9X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tZW51KCRuYW1lOiAnLm1lbnUnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1saXN0KCRuYW1lKSB7XG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KHJlZ3VsYXIpO1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1saXN0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24gPiAjeyRuYW1lfV9faXRlbS1pbm5lcixcbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biB7XG4gICAgICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpob3ZlciA+ICN7JG5hbWV9LFxuICAgICAgICAgICAgICAgICY6aGFzKDpmb2N1cy12aXNpYmxlKSA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0gPiAjeyRuYW1lfV9faXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgJjpub3QoJi0taG9yaXpvbnRhbC1saW5lKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ob3Jpem9udGFsLWxpbmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tb25leS1wcmljZSgkbmFtZTogJy5tb25leS1wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1uYXZpZ2F0aW9uLWljb24tbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLWljb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGlsZXZlbCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpbGV2ZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtLS1oYXMtY2hpbGRyZW4tZHJvcGRvd246aG92ZXIge1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tbXVsdGl2aWV3LWxpc3QoJG5hbWU6ICcubmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhZ2luYXRpb24oJG5hbWU6ICcucGFnaW5hdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yKCRuYW1lOiAnLnBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMzEyNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbmRpY2F0b3ItbGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgd2Vha1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgd2FybmluZyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgbWVkaXVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDMsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBzdWNjZXNzKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBzdHJvbmdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgNCxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHZlcnktc3Ryb25nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVzc2FnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkaXRpb25hbC1tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG5cbiAgICAgICAgICAgICYtLXdlYWssXG4gICAgICAgICAgICAmLS1tZWRpdW0sXG4gICAgICAgICAgICAmLS1zdHJvbmcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcygkbGVuZ3RoLCAkY29sb3IsICRuYW1lLCAkbW9kaWZpZXIpIHtcbiAgICAmLS0jeyRtb2RpZmllcn0ge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICZfX2luZGljYXRvci1pdGVtIHtcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgjeyRpfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtI3skbW9kaWZpZXJ9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzZXR0aW5nLWJ1dHRvbi13aWR0aDogMS44NzVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWZpZWxkKCRuYW1lOiAnLnBhc3N3b3JkLWZpZWxkJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICN7JG5hbWV9X19pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc2V0dGluZy1idXR0b24td2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRuYW1lfV9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNob3duIHtcbiAgICAgICAgICAgICAgICAjeyRuYW1lfSB7XG4gICAgICAgICAgICAgICAgICAgICZfX2ljb24tc2hvdyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1oaWRlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJpY2UoJG5hbWU6ICcucHJpY2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmX19hbW91bnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1jYXJkKCRuYW1lOiAnLnByb2R1Y3QtY2FyZCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNhcmQoJG5hbWUpIHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZTogJy5wcm9kdWN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgJi0tc3BhY2luZ2xlc3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zLXJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lOiAnLnByb2R1Y3QtaXRlbS1saXN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXByb2R1Y3QtbGlzdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtbGlzdC1pdGVtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qIGZlLXNuaWZmZXI6ZGlzYWJsZWQgY29ycmVjdC1zY3NzLWNvbXBvbmVudC1zdHJ1Y3R1cmUgKi9cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cygkbmFtZTogJy5xdW90ZS1zdGF0dXMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuXG4gICAgICAgICYtLXdhaXRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCd3YXJuaW5nJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignc3VjY2VzcycsIDAuMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNsaW5lZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ2FsZXJ0JywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpLCAxMCksICRvcGFjaXR5KTtcbiAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAkYWN0aW9uLWNvbG9yKTtcblxuICAgIEBjb250ZW50O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gc3RhdHVzLWNvbG9yKCRhY3Rpb24tY29sb3IsICRvcGFjaXR5OiAxKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1xdW90ZS1zdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHkpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlYXJjaC1mb3JtKCRuYW1lOiAnLnNlYXJjaC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Ym1pdCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZycpO1xuXG5AbWl4aW4gc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwoJG5hbWU6ICcuc2ltcGxlLWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbC1pY29uLXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX192aWV3IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2xpZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbih0cmFuc2Zvcm0sIDUwMG1zKTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90cyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2RvdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fYXJyb3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluc2V0ICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlc3QsIDAuNzUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2luZ2xlLWJ1dHRvbi1mb3JtKCRuYW1lOiAnLnNpbmdsZS1idXR0b24tZm9ybScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNraXAtbGluaygkbmFtZTogJy5za2lwLWxpbmsnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYWNjZXNzaWJsZS12aXNpYmlsaXR5LWludmlzaWJsZSgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1za2lwLWxpbms7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgb3V0bGluZTogMC4wNjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zdGF0dXMoJG5hbWU6ICcuc3RhdHVzJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UoJG5hbWUpIHtcbiAgICAgICAgJi0tcmVqZWN0ZWQsXG4gICAgICAgICYtLWluLXByb2dyZXNzLFxuICAgICAgICAmLS1yZWZ1bmRlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hcHByb3ZlZCxcbiAgICAgICAgJi0tcmVhZHksXG4gICAgICAgICYtLXBhaWQsXG4gICAgICAgICYtLWRlbGl2ZXJlZCxcbiAgICAgICAgJi0tY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVuZGluZyxcbiAgICAgICAgJi0td2FpdGluZyxcbiAgICAgICAgJi0tcGF5bWVudC1wZW5kaW5nLFxuICAgICAgICAmLS1jb25maXJtZWQsXG4gICAgICAgICYtLXNlbnQtdG8tbWVyY2hhbnQsXG4gICAgICAgICYtLXNoaXBwZWQtYnktbWVyY2hhbnQsXG4gICAgICAgICYtLWV4cG9ydGVkLFxuICAgICAgICAmLS1ub3QtY29uZmlndXJlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQobWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnd2FybmluZycpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2xvc2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNhbmNlbGxlZCxcbiAgICAgICAgJi0tY2FuY2VsZWQsXG4gICAgICAgICYtLXJlYWR5LWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybmVkLFxuICAgICAgICAmLS13YWl0aW5nLWZvci1yZXR1cm4sXG4gICAgICAgICYtLXJldHVybi1jYW5jZWxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItZGFya2VyKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHJhZnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFsdCk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRleHQtYm9sZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN1Z2dlc3Qtc2VhcmNoKCRuYW1lOiAnLnN1Z2dlc3Qtc2VhcmNoJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2lucHV0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjkyNXJlbTtcblxuICAgICAgICAgICAgJi0tdHJhbnNwYXJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9faGludCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zZWFyY2gtc3VnZ2VzdGlvbnMgKyAxO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvZ2dsZXItY2hlY2tib3goJG5hbWU6ICcudG9nZ2xlci1jaGVja2JveCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1yYWRpbygkbmFtZTogJy50b2dnbGVyLXJhZGlvJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcmFkaW8oJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UoJG5hbWU6ICcudG9vbHRpcC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi10b3A6IC0kc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShkZWZhdWx0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBzbWFsbCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemV9KTtcbiAgICAgICAgICAgIGJvdHRvbTogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICAgICAgYm9yZGVyOiAkc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0gJl9fdGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICAmLS0jeyRhY3Rpb259ICZfX2Fycm93IHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktaGVhZGVyKCRuYW1lOiAnLmhlYWRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXI7XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcblxuICAgICAgICAgICAgJi0tbWlkZGxlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24tdG9wIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDM7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zZWFyY2gtZm9ybSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi1tYWluIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDE7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24tdG9wKCRuYW1lOiAnLm5hdmlnYXRpb24tdG9wJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1uYXZpZ2F0aW9uLXRvcDtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5vdGlmaWNhdGlvbi1hcmVhKCRuYW1lOiAnLm5vdGlmaWNhdGlvbi1hcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1ub3RpZmljYXRpb24tYXJlYTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXNlY3Rpb24oJG5hbWU6ICcuc2VjdGlvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2VudGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg6IDE1cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1zaWRlLWRyYXdlcigkbmFtZTogJy5zaWRlLWRyYXdlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2lkZS1kcmF3ZXI7XG5cbiAgICAgICAgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24ob3BhY2l0eSB2aXNpYmlsaXR5IHJpZ2h0KTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAtJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktc2lkZS1kcmF3ZXItd2lkdGg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1iZztcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmX19jbG9zZSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNob3cgJl9fZHJhd2VyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNlYXJjaC10YWItYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuQG1peGluIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJHNlYXJjaC10YWItYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcHgpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB0YWJzLXdpZGdldC1zZWFyY2gtdGFicyBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY2F0YWxvZy1wYWdlLXNlYXJjaC10YWJzKCRuYW1lOiAnLnNlYXJjaC10YWJzJykge1xuICAgIEBpbmNsdWRlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHdpc2hsaXN0LXdpZGdldC13aXNobGlzdC1zZWxlY3RvcigkbmFtZTogJy53aXNobGlzdC1zZWxlY3RvcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtdWx0aS1mYWN0b3ItYXV0aC1tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCgkbmFtZTogJy5tdWx0aS1mYWN0b3ItYXV0aGVudGljYXRpb24tY29udGVudCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3R5cGUtc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIC5yYWRpb19fY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICA+IC5sYWJlbC0tcmVxdWlyZWQge1xuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtcmV0dXJuLXBhZ2UtcmV0dXJuLXRvdGFsKCRuYW1lOiAnLnJldHVybi10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogcmVtKDIwKSAwIHJlbSgzMCk7XG4gICAgICAgIGJvcmRlci1ib3R0b206IHJlbSgxKSBkb3R0ZWQgJHNldHRpbmctY29sb3ItZ3JheS0zO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkbGctbWluKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oNDApO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBmb250OiBmdyhyZWd1bGFyKSByZW0oMTQpIC8gcmVtKDE4KSAkc2V0dGluZy1mb250LWZhbWlseS1hZGRpdGlvbmFsO1xuICAgICAgICAgICAgbWFyZ2luOiByZW0oMjQpIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNhbGVzLXJldHVybi1wYWdlLXJldHVybi10b3RhbCgpO1xuIiwiQGltcG9ydCAnflNob3BVaS9zdHlsZXMvc2hhcmVkJztcblxuQGltcG9ydCAnaGVscGVycy9yZXNldCc7XG5AaW1wb3J0ICdoZWxwZXJzL2NhbGMtcmVtJztcbkBpbXBvcnQgJ2hlbHBlcnMvZm9udCc7XG5AaW1wb3J0ICdoZWxwZXJzL2lucHV0LXBsYWNlaG9sZGVyJztcbkBpbXBvcnQgJ2hlbHBlcnMvZWZmZWN0JztcblxuQGltcG9ydCAnc2V0dGluZ3MvYnJlYWtwb2ludCc7XG5AaW1wb3J0ICdzZXR0aW5ncy9jb2xvcic7XG5AaW1wb3J0ICdzZXR0aW5ncy9mb250JztcbkBpbXBvcnQgJ3NldHRpbmdzL2dyaWQnO1xuQGltcG9ydCAnc2V0dGluZ3Mvc3BhY2luZyc7XG5AaW1wb3J0ICdzZXR0aW5ncy96LWluZGV4JztcblxuQG1peGluIGFnZW50LXdpZGdldC1hZ2VudC1uYXZpZ2F0aW9uKCRuYW1lOiAnLmFnZW50LW5hdmlnYXRpb24nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19kcm9wZG93biA+ICZfX2Ryb3Bkb3duLWl0ZW1bcG9zaXRpb24tcmlnaHRdIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LW5hdmlnYXRpb24gbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIGFnZW50LW5hdmlnYXRpb24oJG5hbWU6ICcuYWdlbnQtbmF2aWdhdGlvbicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtbmF2aWdhdGlvbigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBhZ2VudC13aWRnZXQtY3VzdG9tZXItbGlzdCgkbmFtZTogJy5jdXN0b21lci1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcblxuICAgICAgICAmX19jb250YWluZXItaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyKCRuYW1lOiAnLmFnZW50LWNvbnRyb2wtYmFyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAxO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYWdlbnQtd2lkZ2V0LWFnZW50LWNvbnRyb2wtYmFyIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBhZ2VudC1jb250cm9sLWJhcigkbmFtZTogJy5hZ2VudC1jb250cm9sLWJhcicpIHtcbiAgICBAaW5jbHVkZSBhZ2VudC13aWRnZXQtYWdlbnQtY29udHJvbC1iYXIoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY2FydC1wYWdlLXByb2R1Y3QtY2FydC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtY2FydC1pdGVtJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1maWx0ZXItY2F0ZWdvcnkoJG5hbWU6ICcuZmlsdGVyLWNhdGVnb3J5Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fY2F0ZWdvcnktdG9nZ2xlLWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24odHJhbnNmb3JtKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnc21hbGwnKTtcblxuICAgICAgICAgICAgJi0tY29sbGFwc2VkIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihncmlkLXRlbXBsYXRlLXJvd3MpO1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuXG4gICAgICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2F0ZWdvcnktdGFyZ2V0LWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19jYXRlZ29yeS1yb3cge1xuICAgICAgICAgICAgJi0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWVudS1pdGVtICZfX21lbnUtaXRlbSB7XG4gICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNhdGFsb2ctcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc3VnZ2VzdGlvbi1wcm9kdWN0KCRuYW1lOiAnLnN1Z2dlc3Rpb24tcHJvZHVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNoZWNrb3V0LXBhZ2Utc3VtbWFyeS1vdmVydmlldygkbmFtZTogJy5zdW1tYXJ5LW92ZXJ2aWV3Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fZ3JhbmQtdG90YWwtcHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBjaGVja291dC1wYWdlLXN1bW1hcnktb3ZlcnZpZXcoKTtcblxuQG1peGluIGNtcy1zZWFyY2gtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGNtcy1zZWFyY2gtcGFnZS1zb3J0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjbXMtcGFnZS1zb3J0KCRuYW1lOiAnLnNvcnQnKSB7XG4gICAgQGluY2x1ZGUgY21zLXNlYXJjaC1wYWdlLXNvcnQoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1ub3RlLXdpZGdldC1yZWFkb25seS1idW5kbGVkLW5vdGUoJG5hbWU6ICcucmVhZG9ubHktYnVuZGxlZC1ub3RlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWZvbnQtc2l6ZSwgJ3NtYWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbigkbmFtZTogJy5jb25maWd1cmF0b3ItYnV0dG9uJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uKCRuYW1lKSB7XG4gICAgICAgICYtLWFkZGl0aW9uYWwtaW5kZW50aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKVxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZShcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci13aGl0ZSxcbiAgICAgICAgICAgICAgICAkc2V0dGluZy1jb2xvci1kYXJrLFxuICAgICAgICAgICAgICAgICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VsZWN0ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGUoXG4gICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSksXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnc3VjY2VzcycpLFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLWNvbmZpZ3VyYXRvci1idXR0b24tc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICYtLWFjdGl2ZTpob3ZlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb25maWd1cmFibGUtYnVuZGxlLXBhZ2UtY29uZmlndXJhdG9yLWJ1dHRvbi1zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItYnV0dG9uLXN0YXRlKFxuICAgICRiYWNrZ3JvdW5kOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgJGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXIsXG4gICAgJGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpblxuKSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItbWVzc2FnZSgkbmFtZTogJy5jb25maWd1cmF0b3ItbWVzc2FnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKVxuICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2JpZycpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmF0b3ItcHJvZHVjdCgkbmFtZTogJy5jb25maWd1cmF0b3ItcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbS1saXN0KCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtcGFnZS1jb25maWd1cmVkLWJ1bmRsZS10b3RhbCgkbmFtZTogJy5jb25maWd1cmVkLWJ1bmRsZS10b3RhbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgbWFyZ2luOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdiaWcnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXNlbGVjdGVkLXByb2R1Y3QtbGlzdCgkbmFtZTogJy5zZWxlY3RlZC1wcm9kdWN0LWxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3Jlc2V0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpXG4gICAgICAgICAgICAgICAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS1wYWdlLXRlbXBsYXRlLWxpc3QoJG5hbWU6ICcudGVtcGxhdGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1jbGVhcmZpeDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgcGFkZGluZzogMS43NXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgMi41cmVtO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAncmVzZXQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbS10aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgICAgICYtLXdpdGgtYmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLmNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tb3JkZXJlZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBtYXJnaW46IDAgLSN7bWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpfTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29sIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcuY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCcpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXByb2R1Y3QtaXRlbSgkbmFtZSkge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC4xODhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19jb2wge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGN1c3RvbWVyLXBhZ2Utb3JkZXItZGV0YWlsLXRhYmxlKCRuYW1lOiAnLm9yZGVyLWRldGFpbC10YWJsZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtIDFyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZmlsZS1tYW5hZ2VyLXdpZGdldC1maWxlLWRvd25sb2FkLWxpbmsoJG5hbWU6ICcuZmlsZS1kb3dubG9hZC1saW5rJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0taWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogOC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IG1hcC1nZXQoJHNldHRpbmctZm9udC1zaXplLCAnc21hbGwnKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpLCA1Nyk7XG4gICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ2FsZXJ0JyksIDIwKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAmLS1pY29uIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDZyZW07XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZXh0ZW5zaW9uIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zaXplIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluayBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gZmlsZS1kb3dubG9hZC1saW5rKCRuYW1lOiAnLmZpbGUtZG93bmxvYWQtbGluaycpIHtcbiAgICBAaW5jbHVkZSBmaWxlLW1hbmFnZXItd2lkZ2V0LWZpbGUtZG93bmxvYWQtbGluaygpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwYXltZW50LWFwcC13aWRnZXQtcGF5cGFsLWJ1dHRvbnMoJG5hbWU6ICcucGF5cGFsLWJ1dHRvbnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgbWluLWhlaWdodDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3NwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtbG9hZGluZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgI3skbmFtZX1fX3NwaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWFqYXgtbG9hZGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UoJG5hbWU6ICcudm9sdW1lLXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICAmLS1vcmlnaW5hbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190YWcge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ByaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcblxuICAgICAgICAgICAgJi0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcHVsc2UtaGlnaGxpZ2h0IDAuNHMgbGluZWFyIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlKCRuYW1lOiAnLnZvbHVtZS1wcmljZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUoJG5hbWU6ICcudm9sdW1lLXByaWNlLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShiaWcpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgJl9fdGFibGUsXG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19jZWxsIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhYmxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NlbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByaWNlLXByb2R1Y3Qtdm9sdW1lLXdpZGdldC12b2x1bWUtcHJpY2UtdGFibGUgbWl4aW4gaW5zdGVhZC5cbiAqL1xuQG1peGluIHNob3AtdWktdm9sdW1lLXByaWNlLXRhYmxlKCRuYW1lOiAnLnZvbHVtZS1wcmljZS10YWJsZScpIHtcbiAgICBAaW5jbHVkZSBwcmljZS1wcm9kdWN0LXZvbHVtZS13aWRnZXQtdm9sdW1lLXByaWNlLXRhYmxlKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtYnVuZGxlLXdpZGdldC1idW5kbGUtaXRlbXMoJG5hbWU6ICcuYnVuZGxlLWl0ZW1zJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fbmFtZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1jb21wYXJpc29uLXBhZ2UtY29tcGFyaXNvbi10YWJsZSgkbmFtZTogJy5jb21wYXJpc29uLXRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICAgICAmX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jb21wYXJpc29uLXJlcGVhdC1jb2x1bW5zLCAxKSwgbWlubWF4KDEwcmVtLCAxZnIpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtbWluKGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKG1hcC1nZXQoJHNldHRpbmctYnJlYWtwb2ludHMsIGxnKSkpIHtcbiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heChtaW4tY29udGVudCwgMTVyZW0pIHJlcGVhdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWNvbXBhcmlzb24tcmVwZWF0LWNvbHVtbnMsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWlubWF4KDE1cmVtLCAxZnIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vdC1ub3RhdGlvbiAqL1xuICAgICAgICAgICAgJjpub3QoJi0tc2l6ZS0xKTpub3QoJi0tc2l6ZS0yKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiA1MHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3Qtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oaGVscGVyLWJyZWFrcG9pbnQtZWRnZS1taW4obWFwLWdldCgkc2V0dGluZy1icmVha3BvaW50cywgbGcpKSkge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikgI3skbmFtZX1fX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xpc3QtY2VsbCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC4yNXJlbTtcblxuICAgICAgICAgICAgJi0tbmFtZSxcbiAgICAgICAgICAgICYtLWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1uYW1lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1saWdodDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc20tZnVsbCB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbihoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbihtYXAtZ2V0KCRzZXR0aW5nLWJyZWFrcG9pbnRzLCBsZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJvZHVjdHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZGV0YWlsLXBhZ2UtcHJvZHVjdC1jYXJvdXNlbCgkbmFtZTogJy5wcm9kdWN0LWNhcm91c2VsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJGNvbG9yLXNlbGVjdG9yLXNpemU6IDEuNXJlbTtcblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLmNvbG9yLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICZfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvciBvcGFjaXR5KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRjb2xvci1zZWxlY3Rvci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkY29sb3Itc2VsZWN0b3Itc2l6ZTtcbiAgICAgICAgICAgIGJvcmRlcjogMC4xMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNlbnRlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yKCRuYW1lOiAnLnByb2R1Y3QtZGV0YWlsLWNvbG9yLXNlbGVjdG9yJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LWNvbG9yLXNlbGVjdG9yKCRuYW1lKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3QtZ3JvdXAtd2lkZ2V0LXByb2R1Y3QtaXRlbS1jb2xvci1zZWxlY3RvcigkbmFtZTogJy5wcm9kdWN0LWl0ZW0tY29sb3Itc2VsZWN0b3InKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1ncm91cC13aWRnZXQtY29sb3Itc2VsZWN0b3IoJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtZmxhZygkbmFtZTogJy5mbGFnJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LWxpbmUtaGVpZ2h0KHRpZ2h0KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHQsIDAuOSk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlnaGxpZ2h0LFxuICAgICAgICAmLS1oaWdobGlnaHQgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtbGFiZWwtZ3JvdXAoJG5hbWU6ICcubGFiZWwtZ3JvdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50LWZsb2F0aW5nO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplOiAycmVtO1xuXG5AbWl4aW4gcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnKCRuYW1lOiAnLnRhZycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWN0LWxhYmVsLXdpZGdldC10YWctYnVyc3Qtc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC1sYWJlbC13aWRnZXQtdGFnLWJ1cnN0LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJHByb2R1Y3QtbGFiZWwtd2lkZ2V0LXRhZy1idXJzdC1zaXplO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2MGRlZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtbGluZS1oZWlnaHQodGlnaHQpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0LXBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbkBtaXhpbiBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0KCRuYW1lOiAnLnNob3BwaW5nLWxpc3QtcHJvZHVjdC1vcHRpb24tbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMCAoLSRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyk7XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICRzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QtcGFkZGluZyBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBwcm9kdWN0LW9wdGlvbi13aWRnZXQtc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoJG5hbWU6ICcuc2hvcHBpbmctbGlzdC1wcm9kdWN0LW9wdGlvbi1saXN0Jykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtb3B0aW9uLXdpZGdldC1zaG9wcGluZy1saXN0LXByb2R1Y3Qtb3B0aW9uLWxpc3QoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZTogMjBweDtcblxuQG1peGluIHByb2R1Y3QtcmV2aWV3LXdpZGdldC1yYXRpbmctc2VsZWN0b3IoJG5hbWU6ICcucmF0aW5nLXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N0ZXBzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGRpcmVjdGlvbjogcnRsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3RlcCB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgICAgICAgICAgJi0tZnVsbCB7XG4gICAgICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yLWljb24tc2l6ZX0gLyAyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhbGYge1xuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3stJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemV9IC8gMik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0YXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yLCAxMDBtcyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHByb2R1Y3QtcmV2aWV3LXJhdGluZy1zZWxlY3Rvci1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG5cbiAgICAgICAgICAgICYtLWhhbGYtbGVmdCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygjeyRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYWxmLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKCN7LSRwcm9kdWN0LXJldmlldy1yYXRpbmctc2VsZWN0b3ItaWNvbi1zaXplfSAvIDIpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXA6aG92ZXIgPiAmX19zdGFyLFxuICAgICAgICAmX19zdGVwOmhvdmVyIH4gJl9fc3RlcCA+ICZfX3N0YXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIH1cblxuICAgICAgICAmX19zdGVwLS1hY3RpdmUgPiAmX19zdGFyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWFkb25seSB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvciBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gcHJvZHVjdC1yZXZpZXctcmF0aW5nLXNlbGVjdG9yKCRuYW1lOiAnLnBhY2thZ2luZy11bml0LWNhcnQnKSB7XG4gICAgQGluY2x1ZGUgcHJvZHVjdC1yZXZpZXctd2lkZ2V0LXJhdGluZy1zZWxlY3RvcigpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICAmLS1yb3cge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoZGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBwcm9kdWN0LXF1aWNrLWFkZC13aWRnZXQtcHJvZHVjdC1xdWljay1hZGQtZm9ybSgkbmFtZTogJy5wcm9kdWN0LXF1aWNrLWFkZC1mb3JtJykge1xuICAgIEBpbmNsdWRlIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXF1aWNrLWFkZC1mb3JtKCk7XG5cbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHByb2R1Y3Qtc2VhcmNoLXdpZGdldC1wcm9kdWN0LXNlYXJjaC1pdGVtKCRuYW1lOiAnLnByb2R1Y3Qtc2VhcmNoLWl0ZW0nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0tbGlzdCgkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBwcm9kdWN0LXNlYXJjaC13aWRnZXQtcHJvZHVjdHMtbGlzdCgkbmFtZTogJy5wcm9kdWN0cy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmLS1zZWxlY3RlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNhbGVzLWNvbmZpZ3VyYWJsZS1idW5kbGUtd2lkZ2V0LW9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZSBtaXhpbiBpbnN0ZWFkLlxuICovXG5AbWl4aW4gY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoJG5hbWU6ICcub3JkZXItY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgkbmFtZTogJy5vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1bGxldCB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0IG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlci1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0KCRuYW1lOiAnLm9yZGVyLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QnKSB7XG4gICAgQGluY2x1ZGUgc2FsZXMtY29uZmlndXJhYmxlLWJ1bmRsZS13aWRnZXQtb3JkZXItY29uZmlndXJlZC1idW5kbGUtcHJvZHVjdCgpO1xuXG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlKCRuYW1lOiAnLm9yZGVyZWQtY29uZmlndXJlZC1idW5kbGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0JykgbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0je21hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKX07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMyU7XG4gICAgICAgIH1cblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzYWxlcy1jb25maWd1cmFibGUtYnVuZGxlLXdpZGdldC1vcmRlcmVkLWNvbmZpZ3VyZWQtYnVuZGxlLXByb2R1Y3QoJG5hbWU6ICcub3JkZXJlZC1jb25maWd1cmVkLWJ1bmRsZS1wcm9kdWN0Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lKSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjE4OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1iYWRnZSgkbmFtZTogJy5iYWRnZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYmFkZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJhZGdlLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1ib3goJG5hbWU6ICcuYm94Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnZGVmYXVsdCcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHRlcjtcblxuICAgICAgICAmX19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ2RlZmF1bHQnKSAtI3ttYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyl9O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3JkZXJsZXNzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAjeyRuYW1lfV9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXRlci1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhcmsge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWJveC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYm94LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAmLS0jeyRhY3Rpb259IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktYnV0dG9uKCRuYW1lOiAnLmJ1dHRvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihiYWNrZ3JvdW5kLWNvbG9yIGJveC1zaGFkb3cpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IGNhbGMoMC4yNXJlbSArIDFweCkgY2FsYygwLjVyZW0gKyAxcHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDJweCA3cHggMCBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1tYWluKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvbGxvdyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDdweCAwIHJnYmEoJHNldHRpbmctY29sb3ItbWFpbiwgMC43KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktYnV0dG9uLWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0sXG4gICAgICAgICZbZGF0YS1kaXNhYmxlZF0sXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1idXR0b24tYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbikge1xuICAgICYtLSN7JGFjdGlvbn0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0jeyZ9LS1ob2xsb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAycHggN3B4IDAgcmdiYSgkc2V0dGluZy1jb2xvci1hY3Rpb24sIDAuNyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktY2hlY2tib3goJG5hbWU6ICcuY2hlY2tib3gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmX19ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGVjayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb247XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICBsZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuNzVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJiArICN7JG5hbWV9X19ib3gge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgICYgfiAjeyRuYW1lfV9fY2hlY2sge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yICZfX2JveCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphY3RpdmUgJl9fYm94LFxuICAgICAgICAmLS1hY3RpdmUgJl9fYm94IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdICZfX2JveCxcbiAgICAgICAgJi0tZGlzYWJsZWQgJl9fYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1pY29uLXNpemU6IG1hcC1nZXQoJHNldHRpbmctaWNvbi1zaXplcywgJ2ljb24tc2l6ZS1kZWZhdWx0Jyk7XG4kc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsZXInKTtcbiRzaG9wLXVpLWljb24tc2l6ZS1zbWFsbDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLXNtYWxsJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VyOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnZ2VyJyk7XG4kc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDogbWFwLWdldCgkc2V0dGluZy1pY29uLXNpemVzLCAnaWNvbi1zaXplLWJpZ2dlc3QnKTtcblxuQG1peGluIHNob3AtdWktaWNvbigkbmFtZTogJy5pY29uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICB3aWR0aDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1pY29uLXNpemUtc21hbGw7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtc21hbGxlcjtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLXNtYWxsZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWcge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWc7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRzaG9wLXVpLWljb24tc2l6ZS1iaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1pY29uLXNpemUtYmlnZ2VzdDtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktaWNvbi1zaXplLWJpZ2dlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGlubmVyIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbi10byAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWlucHV0KCRuYW1lOiAnLmlucHV0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ha2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxpbmsoJG5hbWU6ICcubGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWx0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihjb2xvcik7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGluay1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hY3Rpb247XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBzaG9wLXVpLWxhYmVsKCRuYW1lOiAnLmxhYmVsJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJi0tcmVxdWlyZWQge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1saXN0KCRuYW1lOiAnLmxpc3QnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcblxuICAgICAgICAgICAgJiA+ICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSA+ICZfX2l0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnVsbGV0ICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wbHVzICZfX2l0ZW0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKyc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxlcnQge1xuICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgYWxlcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1yYWRpbygkbmFtZTogJy5yYWRpbycpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWNoZWNrYm94KCRuYW1lKSB7XG4gICAgICAgICZfX2JveCxcbiAgICAgICAgJl9fY2hlY2sge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VsZWN0KCRuYW1lOiAnLnNlbGVjdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihib3JkZXItY29sb3IpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICZfX3NlbGVjdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAwLjI1cmVtIHNvbGlkICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSxcbiAgICAgICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2FyZXQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXhwYW5kLFxuICAgICAgICAmLS1leHBhbmQgJl9fc2VsZWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYWtlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lcnJvciAmX19jYXJldCB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCBhbGVydCk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRhYmxlKCRuYW1lOiAnLnRhYmxlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgdGhlYWQsXG4gICAgICAgICZfX2hlYWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtd2VpZ2h0KGJvbGQpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHksXG4gICAgICAgICZfX2JvZHkge1xuICAgICAgICAgICAgdHI6bm90KCN7JG5hbWV9X19yb3ctLWJhY2tncm91bmdsZXNzKSB7XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDAuMjVyZW07XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcm93IHtcbiAgICAgICAgICAgICYtLWJhY2tncm91bmdsZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oaWdobGlnaHRlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlc3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXNwYWNpbmcteS1zbWFsbCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zcGFjaW5nLWJvdHRvbS1yZXNldCB7XG4gICAgICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1leHBhbmQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRleHRhcmVhKCRuYW1lOiAnLnRleHRhcmVhJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJvcmRlci1jb2xvcik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci1pbnB1dC1ib3JkZXItZm9jdXM7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGlzYWJsZWRdLFxuICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodGVzdDtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRodW1ibmFpbCgkbmFtZTogJy50aHVtYm5haWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBtYXJnaW46IDAuNXJlbTtcblxuICAgICAgICAmLS1zbWFsbGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnZ2VyIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluLXNpemUge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbWFnZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAmLS1jb2xvci1saWdodCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGhvdXQtc3BhY2VzIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdGl0bGUoJG5hbWU6ICcudGl0bGUnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAZWFjaCAkaSBpbiAoMSwgMiwgMywgNCwgNSwgNikge1xuICAgICAgICAgICAgJi0taCN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKCRpKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1saW5lLWhlaWdodCgkaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRzZXR0aW5nLWZvbnQtd2VpZ2h0IHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgICYtLSN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXBwZXJjYXNlIHtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20tZGl2aWRlciB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjA2M3JlbSBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFjdGlvbi1iYXIoJG5hbWU6ICcuYWN0aW9uLWJhcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMC44MTNyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuODEzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktYWpheC1hZGQtdG8tY2FydCgkbmFtZTogJy5hamF4LWFkZC10by1jYXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFqYXgtbG9hZGVyKCRuYW1lOiAnLmFqYXgtbG9hZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHNldHRpbmctY29sb3ItbGlnaHRlciwgMC41KTtcbiAgICAgICAgei1pbmRleDogJHNldHRpbmctemktYWpheC1sb2FkZXI7XG5cbiAgICAgICAgJl9fc3Bpbm5lciB7XG4gICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3Bpbi10bztcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2xpZC1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJpZyAmX19sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZHluYW1pYyB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1hamF4LWR5bmFtaWMtbG9hZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlld3BvcnQtY2VudGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICN7JG5hbWV9X19sYXlvdXQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdGF0aWM6bm90KC5pcy1pbnZpc2libGUpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWFsZXJ0KCRuYW1lOiAnLmFsZXJ0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCBiaWcpO1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgZGVmYXVsdCkgMDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHQtYmx1ZTtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlc3Q7XG5cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYmx1ZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwIG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgYmlnKSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWF1dG9jb21wbGV0ZS1mb3JtKCRuYW1lOiAnLmF1dG9jb21wbGV0ZS1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICZfX3N1Z2dlc3Rpb25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQgKyAyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWJyZWFkY3J1bWItc3RlcCgkbmFtZTogJy5icmVhZGNydW1iLXN0ZXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJl9fc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Zvcm0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkOm5vdCgmLS1hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNhcmQoJG5hbWU6ICcuY2FyZCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMC41cmVtO1xuICAgICAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0cmV0Y2gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTogMS41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1jYXJ0LWNvdW50ZXIoJG5hbWU6ICcuY2FydC1jb3VudGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkc2hvcC11aS1jYXJ0LWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNob3AtdWktY2FydC1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRzaG9wLXVpLWNhcnQtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hcC1nZXQoJHNldHRpbmctc3BhY2luZywgJ3NtYWxsJyk7XG5cbiAgICAgICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU6IDEuNXJlbTtcblxuQG1peGluIHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyKCRuYW1lOiAnLmNhcnQtaXRlbXMtY291bnRlcicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX3F1YW50aXR5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICRzaG9wLXVpLWNhcnQtaXRlbXMtY291bnRlci1xdWFudGl0eS1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2hvcC11aS1jYXJ0LWl0ZW1zLWNvdW50ZXItcXVhbnRpdHktc2l6ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHNob3AtdWktY2FydC1pdGVtcy1jb3VudGVyLXF1YW50aXR5LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLWNvbGxhcHNpYmxlLWxpc3QoJG5hbWU6ICcuY29sbGFwc2libGUtbGlzdCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zaG93KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWhpZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHNob3AtdWktY29sbGFwc2libGUtbGlzdDtcblxuQG1peGluIHNob3AtdWktZW5kbGVzcy1zY3JvbGwoJG5hbWU6ICcuZW5kbGVzcy1zY3JvbGwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICZfX3Njcm9sbC1jb250YWluZXIge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbG9hZGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZSgkbmFtZTogJy5mbGFzaC1tZXNzYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24obWF4LWhlaWdodCBvcGFjaXR5IHZpc2liaWxpdHksIDUwMG1zKTtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbiksIDAuOTcpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLW1haW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbiBpbiAkc2V0dGluZy1jb2xvci1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktZmxhc2gtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbiksIDAuOTcpO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fbWVzc2FnZSB7XG4gICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hY3Rpb24pO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG4kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjogMC41cmVtO1xuXG5AbWl4aW4gc2hvcC11aS1mb3JtKCRuYW1lOiAnLmZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNob3AtdWktZm9ybS1maWVsZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpZWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzaG9wLXVpLWZvcm0tZmllbGQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2hvcC11aS1mb3JtLWZpZWxkLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGRzIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWlubGluZSAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUgJl9fZmllbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0ZW5kIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1mb3JtYXR0ZWQtbnVtYmVyLWlucHV0KCRuYW1lOiAnLmZvcm1hdHRlZC1udW1iZXItaW5wdXQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLWlucHV0KCN7JG5hbWV9X19pbnB1dCk7XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1pbnB1dC1kcm9wem9uZSgkbmFtZTogJy5pbnB1dC1kcm9wem9uZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC42MjVyZW07XG5cbiAgICAgICAgJl9fYXJlYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYm9yZGVyOiAwLjEyNXJlbSBkYXNoZWQgJHNldHRpbmctY29sb3ItaW5wdXQtYm9yZGVyO1xuICAgICAgICAgICAgbWluLWhlaWdodDogOC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmLS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzZXR0aW5nLWNvbG9yLWlucHV0LWJvcmRlci1mb2N1cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2ZpbGVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMCAwLjMxMjVyZW07XG4gICAgICAgICAgICBnYXA6IDAuM3JlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19maWxlLWRlbGV0ZSB7XG4gICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCAnYWxlcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktanVtYm90cm9uKCRuYW1lOiAnLmp1bWJvdHJvbicpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY29tbWEtbmV3bGluZS1hZnRlciAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgICAgICB0byBsZWZ0IHRvcCxcbiAgICAgICAgICAgICAgICAgICAgaGVscGVyLWNvbG9yLWRhcmsoJHNldHRpbmctY29sb3ItbWFpbiksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1tYWluKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2hlYWRsaW5lLFxuICAgICAgICAmX19zdWItaGVhZGxpbmUge1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCAkc2V0dGluZy1jb2xvci1kYXJrZXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc3ViLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbGF6eS1pbWFnZSgkbmFtZTogJy5sYXp5LWltYWdlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogMTByZW07XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNtYWxsZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYmlnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjByZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1iaWdnZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4cGFuZCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbi1zaXplIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGFzLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXI6IDAuMjVyZW0gc29saWQgJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLW92ZXJsYXkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLWltYWdlLW92ZXJsYXk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWJhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW1hZ2Uge1xuICAgICAgICAgICAgJi0tdGh1bWJuYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tY29sb3ItbGlnaHQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2JhY2tncm91bmQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbWFpbi1vdmVybGF5KCRuYW1lOiAnLm1haW4tb3ZlcmxheScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW92ZXJsYXk7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW92ZXJsYXk7XG5cbiAgICAgICAgJi0tc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1tYWluLXBvcHVwKCRuYW1lOiAnLm1haW4tcG9wdXAnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci11aS1zaGFkb3c7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiAyOC43NXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA5MHZoO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXBvcHVwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICYtLXdpZGUge1xuICAgICAgICAgICAgd2lkdGg6IDc3LjgxMjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX190aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQoYm9sZCk7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGNvbG9yKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC42MjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIGJpZykgMS41cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlbGVzcyB7XG4gICAgICAgICAgICAjeyRuYW1lfV9faGVhZCB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vcGVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LXZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mbGV4LWNvbnRlbnQge1xuICAgICAgICAgICAgI3skbmFtZX1fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1lbnUoJG5hbWU6ICcubWVudScpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLWxpc3QoJG5hbWUpIHtcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC13ZWlnaHQocmVndWxhcik7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWxpc3Qge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgI3skbmFtZX1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1oYXMtY2hpbGRyZW4tZHJvcGRvd24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhhcy1jaGlsZHJlbi1kcm9wZG93biA+ICN7JG5hbWV9X19pdGVtLWlubmVyLFxuICAgICAgICAgICAgJi0taGFzLWNoaWxkcmVuLWRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgICAmID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdWktc2hhZG93O1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0td2lkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjNyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gI3skbmFtZX0sXG4gICAgICAgICAgICAgICAgJjpoYXMoOmZvY3VzLXZpc2libGUpID4gI3skbmFtZX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgPiAjeyRuYW1lfSA+ICN7JG5hbWV9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGluayB7XG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlcGFyYXRvciB7XG4gICAgICAgICAgICAmOm5vdCgmLS1ob3Jpem9udGFsLWxpbmUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWhvcml6b250YWwtbGluZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW1vbmV5LXByaWNlKCRuYW1lOiAnLm1vbmV5LXByaWNlJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJl9fYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoYmlnKTtcblxuICAgICAgICAgICAgJi0tb3JpZ2luYWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXNpemUoc21hbGwpO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1kYXJrO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fdGFnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLW5hdmlnYXRpb24taWNvbi1saXN0KCRuYW1lOiAnLm5hdmlnYXRpb24taWNvbi1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItdGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aWxldmVsKCRuYW1lOiAnLm5hdmlnYXRpb24tbXVsdGlsZXZlbCcpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgICZfX2l0ZW0tLWhhcy1jaGlsZHJlbi1kcm9wZG93bjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi1tdWx0aXZpZXctbGlzdCgkbmFtZTogJy5uYXZpZ2F0aW9uLW11bHRpdmlldy1saXN0Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFnaW5hdGlvbigkbmFtZTogJy5wYWdpbmF0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLWZvbnQtc2l6ZShzbWFsbCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3N0ZXAge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3IoJG5hbWU6ICcucGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3InKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19pbmRpY2F0b3ItaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMy4xMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC4zMTI1cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2luZGljYXRvci1saXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIGFsZXJ0KSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICB3ZWFrXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKFxuICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgbWFwLWdldCgkc2V0dGluZy1jb2xvci1hY3Rpb25zLCB3YXJuaW5nKSxcbiAgICAgICAgICAgICAgICAkbmFtZSxcbiAgICAgICAgICAgICAgICBtZWRpdW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNob3AtdWktcGFzc3dvcmQtY29tcGxleGl0eS1pbmRpY2F0b3ItaXRlbXMoXG4gICAgICAgICAgICAgICAgMyxcbiAgICAgICAgICAgICAgICBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsIHN1Y2Nlc3MpLFxuICAgICAgICAgICAgICAgICRuYW1lLFxuICAgICAgICAgICAgICAgIHN0cm9uZ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS1wYXNzd29yZC1jb21wbGV4aXR5LWluZGljYXRvci1pdGVtcyhcbiAgICAgICAgICAgICAgICA0LFxuICAgICAgICAgICAgICAgIG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgc3VjY2VzcyksXG4gICAgICAgICAgICAgICAgJG5hbWUsXG4gICAgICAgICAgICAgICAgdmVyeS1zdHJvbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogbWFwLWdldCgkc2V0dGluZy1mb250LXNpemUsICdzbWFsbCcpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcblxuICAgICAgICAgICAgJi0td2VhayxcbiAgICAgICAgICAgICYtLW1lZGl1bSxcbiAgICAgICAgICAgICYtLXN0cm9uZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXBhc3N3b3JkLWNvbXBsZXhpdHktaW5kaWNhdG9yLWl0ZW1zKCRsZW5ndGgsICRjb2xvciwgJG5hbWUsICRtb2RpZmllcikge1xuICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgI3skbmFtZX0ge1xuICAgICAgICAgICAgJl9faW5kaWNhdG9yLWl0ZW0ge1xuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGxlbmd0aCB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfX21lc3NhZ2Uge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS0jeyRtb2RpZmllcn0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuJHNldHRpbmctYnV0dG9uLXdpZHRoOiAxLjg3NXJlbTtcblxuQG1peGluIHNob3AtdWktcGFzc3dvcmQtZmllbGQoJG5hbWU6ICcucGFzc3dvcmQtZmllbGQnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgI3skbmFtZX1fX2lucHV0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzZXR0aW5nLWJ1dHRvbi13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JG5hbWV9X19pY29uLWhpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogJHNldHRpbmctYnV0dG9uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc2hvd24ge1xuICAgICAgICAgICAgICAgICN7JG5hbWV9IHtcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvbi1zaG93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19pY29uLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcmljZSgkbmFtZTogJy5wcmljZScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICZfX2Ftb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG5cbiAgICAgICAgICAgICYtLW9yaWdpbmFsIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFyaztcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RhZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1wcm9kdWN0LWNhcmQoJG5hbWU6ICcucHJvZHVjdC1jYXJkJykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2FyZCgkbmFtZSkge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDMuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtKCRuYW1lOiAnLnByb2R1Y3QtaXRlbScpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci10ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWN0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAmLS1zcGFjaW5nbGVzcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX2FjdGlvbnMtcm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1pdGVtLWxpc3QoJG5hbWU6ICcucHJvZHVjdC1pdGVtLWxpc3QnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1wcm9kdWN0LWl0ZW0oJG5hbWUpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktcHJvZHVjdC1saXN0LWl0ZW0oJG5hbWU6ICcucHJvZHVjdC1saXN0LWl0ZW0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLyogZmUtc25pZmZlcjpkaXNhYmxlZCBjb3JyZWN0LXNjc3MtY29tcG9uZW50LXN0cnVjdHVyZSAqL1xuQG1peGluIHNob3AtdWktcXVvdGUtc3RhdHVzKCRuYW1lOiAnLnF1b3RlLXN0YXR1cycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG5cbiAgICAgICAgJi0td2FpdGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdGF0dXMtY29sb3IoJ3dhcm5pbmcnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXBwcm92ZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3RhdHVzLWNvbG9yKCdzdWNjZXNzJywgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY2xpbmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHN0YXR1cy1jb2xvcignYWxlcnQnLCAwLjMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xNXJlbSBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsICdkZWZhdWx0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoaGVscGVyLWNvbG9yLWxpZ2h0KG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJGFjdGlvbi1jb2xvciksIDEwKSwgJG9wYWNpdHkpO1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICRhY3Rpb24tY29sb3IpO1xuXG4gICAgQGNvbnRlbnQ7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHNob3AtdWktcXVvdGUtc3RhdHVzLWNvbG9yIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGFjdGlvbi1jb2xvciwgJG9wYWNpdHk6IDEpIHtcbiAgICBAaW5jbHVkZSBzaG9wLXVpLXF1b3RlLXN0YXR1cy1jb2xvcigkYWN0aW9uLWNvbG9yLCAkb3BhY2l0eSk7XG5cbiAgICBAY29udGVudDtcbn1cblxuQG1peGluIHNob3AtdWktc2VhcmNoLWZvcm0oJG5hbWU6ICcuc2VhcmNoLWZvcm0nKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJl9fc3VibWl0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplOiBtYXAtZ2V0KCRzZXR0aW5nLWljb24tc2l6ZXMsICdpY29uLXNpemUtYmlnJyk7XG5cbkBtaXhpbiBzaG9wLXVpLXNpbXBsZS1jYXJvdXNlbCgkbmFtZTogJy5zaW1wbGUtY2Fyb3VzZWwnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc2hvcC11aS1zaW1wbGUtY2Fyb3VzZWwtaWNvbi1zaXplO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHNob3AtdWktc2ltcGxlLWNhcm91c2VsLWljb24tc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3ZpZXcge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19zbGlkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKHRyYW5zZm9ybSwgNTAwbXMpO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19kb3RzIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMjVyZW07XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWVmZmVjdC10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IsIDE1MG1zKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbWFpbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktZWxlbWVudCArIDE7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19hcnJvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZWZmZWN0LXRyYW5zaXRpb24oY29sb3IpO1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWRhcmtlcjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2V0dGluZy1jb2xvci1tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbnNldCAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5zZXQgJl9fYXJyb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkc2V0dGluZy1jb2xvci1saWdodGVzdCwgMC43NSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS12aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS1zaW5nbGUtYnV0dG9uLWZvcm0oJG5hbWU6ICcuc2luZ2xlLWJ1dHRvbi1mb3JtJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2tpcC1saW5rKCRuYW1lOiAnLnNraXAtbGluaycpIHtcbiAgICAjeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1hY2Nlc3NpYmxlLXZpc2liaWxpdHktaW52aXNpYmxlKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzZXR0aW5nLWNvbG9yLW1haW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNraXAtbGluaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWFjY2Vzc2libGUtdmlzaWJpbGl0eS12aXNpYmxlKCk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwLjA2MjVyZW0gc29saWQgJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXN0YXR1cygkbmFtZTogJy5zdGF0dXMnKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1iYWRnZSgkbmFtZSkge1xuICAgICAgICAmLS1yZWplY3RlZCxcbiAgICAgICAgJi0taW4tcHJvZ3Jlc3MsXG4gICAgICAgICYtLXJlZnVuZGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyayhtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdhbGVydCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFwcHJvdmVkLFxuICAgICAgICAmLS1yZWFkeSxcbiAgICAgICAgJi0tcGFpZCxcbiAgICAgICAgJi0tZGVsaXZlcmVkLFxuICAgICAgICAmLS1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICdzdWNjZXNzJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3N1Y2Nlc3MnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wZW5kaW5nLFxuICAgICAgICAmLS13YWl0aW5nLFxuICAgICAgICAmLS1wYXltZW50LXBlbmRpbmcsXG4gICAgICAgICYtLWNvbmZpcm1lZCxcbiAgICAgICAgJi0tc2VudC10by1tZXJjaGFudCxcbiAgICAgICAgJi0tc2hpcHBlZC1ieS1tZXJjaGFudCxcbiAgICAgICAgJi0tZXhwb3J0ZWQsXG4gICAgICAgICYtLW5vdC1jb25maWd1cmVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodChtYXAtZ2V0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbnMsICd3YXJuaW5nJykpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKG1hcC1nZXQoJHNldHRpbmctY29sb3ItYWN0aW9ucywgJ3dhcm5pbmcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jbG9zZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY2FuY2VsbGVkLFxuICAgICAgICAmLS1jYW5jZWxlZCxcbiAgICAgICAgJi0tcmVhZHktZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuZWQsXG4gICAgICAgICYtLXdhaXRpbmctZm9yLXJldHVybixcbiAgICAgICAgJi0tcmV0dXJuLWNhbmNlbGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhlbHBlci1jb2xvci1saWdodCgkc2V0dGluZy1jb2xvci1kYXJrZXIpO1xuICAgICAgICAgICAgY29sb3I6IGhlbHBlci1jb2xvci1kYXJrKCRzZXR0aW5nLWNvbG9yLWRhcmtlcik7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kcmFmdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItYWx0KTtcbiAgICAgICAgICAgIGNvbG9yOiBoZWxwZXItY29sb3ItZGFyaygkc2V0dGluZy1jb2xvci1hbHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdGV4dC1ib2xkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1mb250LXdlaWdodChib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc3VnZ2VzdC1zZWFyY2goJG5hbWU6ICcuc3VnZ2VzdC1zZWFyY2gnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogbWFwLWdldCgkc2V0dGluZy1zcGFjaW5nLCAnYmlnJyk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwcmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktc2VhcmNoLXN1Z2dlc3Rpb25zICsgMjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOTI1cmVtO1xuXG4gICAgICAgICAgICAmLS10cmFuc3BhcmVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2V0dGluZy1jb2xvci10cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLXNlYXJjaC1zdWdnZXN0aW9ucyArIDE7XG4gICAgICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktdG9nZ2xlci1jaGVja2JveCgkbmFtZTogJy50b2dnbGVyLWNoZWNrYm94Jykge1xuICAgIEBpbmNsdWRlIHNob3AtdWktY2hlY2tib3goJG5hbWUpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gc2hvcC11aS10b2dnbGVyLXJhZGlvKCRuYW1lOiAnLnRvZ2dsZXItcmFkaW8nKSB7XG4gICAgQGluY2x1ZGUgc2hvcC11aS1yYWRpbygkbmFtZSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbiRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplOiAwLjVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZSgkbmFtZTogJy50b29sdGlwLW1lc3NhZ2UnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItdmlzaWJpbGl0eS1pbnZpc2libGU7XG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWluLXdpZHRoOiAyMHJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cbiAgICAgICAgJl9fdGV4dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGRlZmF1bHQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiBtYXAtZ2V0KCRzZXR0aW5nLXNwYWNpbmcsIHNtYWxsKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNldHRpbmctY29sb3ItbGlnaHQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Fycm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gI3skc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYXJyb3ctc2l6ZX0pO1xuICAgICAgICAgICAgYm90dG9tOiAtJHNob3AtdWktdG9vbHRpcC1tZXNzYWdlLWFycm93LXNpemU7XG4gICAgICAgICAgICBib3JkZXI6ICRzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hcnJvdy1zaXplIHNvbGlkICRzZXR0aW5nLWNvbG9yLWxpZ2h0O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1lbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uIGluICRzZXR0aW5nLWNvbG9yLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2hvcC11aS10b29sdGlwLW1lc3NhZ2UtYWN0aW9uKCRhY3Rpb24sICRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBzaG9wLXVpLXRvb2x0aXAtbWVzc2FnZS1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKSB7XG4gICAgJi0tI3skYWN0aW9ufSAmX190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaGVscGVyLWNvbG9yLWxpZ2h0KCRzZXR0aW5nLWNvbG9yLWFjdGlvbik7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgICYtLSN7JGFjdGlvbn0gJl9fYXJyb3cge1xuICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHNldHRpbmctY29sb3ItYWN0aW9uO1xuICAgIH1cblxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gc2hvcC11aS1oZWFkZXIoJG5hbWU6ICcuaGVhZGVyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoZWxwZXItY29sb3ItbGlnaHQoJHNldHRpbmctY29sb3ItbWFpbik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlcjtcblxuICAgICAgICAmX19yb3cge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuXG4gICAgICAgICAgICAmLS1taWRkbGUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1oZWFkZXIgKyAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbi10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3NlYXJjaC1mb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLWhlYWRlciArIDI7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYXZpZ2F0aW9uLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogJHNldHRpbmctemktaGVhZGVyICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbmF2aWdhdGlvbi10b3AoJG5hbWU6ICcubmF2aWdhdGlvbi10b3AnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5hdmlnYXRpb24tdG9wO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktbm90aWZpY2F0aW9uLWFyZWEoJG5hbWU6ICcubm90aWZpY2F0aW9uLWFyZWEnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6ICRzZXR0aW5nLXppLW5vdGlmaWNhdGlvbi1hcmVhO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIHNob3AtdWktc2VjdGlvbigkbmFtZTogJy5zZWN0aW9uJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jZW50ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDogMTVyZW07XG5cbkBtaXhpbiBzaG9wLXVpLXNpZGUtZHJhd2VyKCRuYW1lOiAnLnNpZGUtZHJhd2VyJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAkc2V0dGluZy16aS1zaWRlLWRyYXdlcjtcblxuICAgICAgICAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLXNoYWRvdztcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci12aXNpYmlsaXR5LWludmlzaWJsZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1lZmZlY3QtdHJhbnNpdGlvbihvcGFjaXR5IHZpc2liaWxpdHkgcmlnaHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IC0kc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2hvcC11aS1zaWRlLWRyYXdlci13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXR0aW5nLWNvbG9yLWJnO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICZfX2Nsb3NlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3ItbGlnaHRlcjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hvdyAmX19kcmF3ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4kc2VhcmNoLXRhYi1ib3JkZXI6IDFweCBzb2xpZCAkc2V0dGluZy1jb2xvci1saWdodGVyO1xuXG5AbWl4aW4gdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgI3skbmFtZX0ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkc2VhcmNoLXRhYi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRzZWFyY2gtdGFiLWJvcmRlcjtcblxuICAgICAgICAmX19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRzZWFyY2gtdGFiLWJvcmRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHNlYXJjaC10YWItYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNldHRpbmctY29sb3Itd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDFweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2V0dGluZy1jb2xvci13aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRhYnMtd2lkZ2V0LXNlYXJjaC10YWJzIG1peGluIGluc3RlYWQuXG4gKi9cbkBtaXhpbiBjYXRhbG9nLXBhZ2Utc2VhcmNoLXRhYnMoJG5hbWU6ICcuc2VhcmNoLXRhYnMnKSB7XG4gICAgQGluY2x1ZGUgdGFicy13aWRnZXQtc2VhcmNoLXRhYnMoKTtcblxuICAgICN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gd2lzaGxpc3Qtd2lkZ2V0LXdpc2hsaXN0LXNlbGVjdG9yKCRuYW1lOiAnLndpc2hsaXN0LXNlbGVjdG9yJykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG11bHRpLWZhY3Rvci1hdXRoLW11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50KCRuYW1lOiAnLm11bHRpLWZhY3Rvci1hdXRoZW50aWNhdGlvbi1jb250ZW50Jykge1xuICAgICN7JG5hbWV9IHtcbiAgICAgICAgJl9fdHlwZS1zZWxlY3Rpb24ge1xuICAgICAgICAgICAgLnJhZGlvX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgID4gLmxhYmVsLS1yZXF1aXJlZCB7XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBpbXBvcnQgJ35TaG9wVWkvc3R5bGVzL3V0aWwnO1xuXG5AaW1wb3J0ICd1dGlscy90ZXh0JztcblxuQGluY2x1ZGUgdXRpbC1zcGFjaW5nO1xuQGluY2x1ZGUgdXRpbC1mbG9hdDtcbkBpbmNsdWRlIHV0aWwtdmlzaWJpbGl0eTtcbiIsIi8qKlxuICogUHJvdmlkZXMgZ2xvYmFsIGNsYXNzIG5hbWVzIGZvciBzcGFjaW5ncy5cbiAqL1xuQG1peGluIHV0aWwtc3BhY2luZygpIHtcbiAgICBAaW5jbHVkZSBoZWxwZXItc3BhY2luZygnLnNwYWNpbmcnKTtcbiAgICBAaW5jbHVkZSBoZWxwZXItc3BhY2luZygnLnNwYWNpbmctdG9wJywgdG9wKTtcbiAgICBAaW5jbHVkZSBoZWxwZXItc3BhY2luZygnLnNwYWNpbmctYm90dG9tJywgYm90dG9tKTtcbiAgICBAaW5jbHVkZSBoZWxwZXItc3BhY2luZygnLnNwYWNpbmctbGVmdCcsIGxlZnQpO1xuICAgIEBpbmNsdWRlIGhlbHBlci1zcGFjaW5nKCcuc3BhY2luZy1yaWdodCcsIHJpZ2h0KTtcbiAgICBAaW5jbHVkZSBoZWxwZXItc3BhY2luZygnLnNwYWNpbmcteCcsIGxlZnQgcmlnaHQpO1xuICAgIEBpbmNsdWRlIGhlbHBlci1zcGFjaW5nKCcuc3BhY2luZy15JywgdG9wIGJvdHRvbSk7XG5cbiAgICBAY29udGVudDtcbn1cbiIsIi8qKlxuICogUHJvdmlkZXMgZ2xvYmFsIGNsYXNzIG5hbWVzIGZvciB0ZXh0IHN0eWxpbmcuXG4gKi9cbkBtaXhpbiB1dGlsLXRleHQoKSB7XG4gICAgLnRleHQtc21hbGwge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKHNtYWxsKTtcbiAgICB9XG5cbiAgICAudGV4dC1iaWcge1xuICAgICAgICBAaW5jbHVkZSBoZWxwZXItZm9udC1zaXplKGJpZyk7XG4gICAgfVxuXG4gICAgLnRleHQtbGVmdCB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuXG4gICAgLnRleHQtY2VudGVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC50ZXh0LXJpZ2h0IHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuXG4gICAgLnRleHQtYWx0IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFsdDtcbiAgICB9XG5cbiAgICAudGV4dC1zZWNvbmRhcnkge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZGFya2VyO1xuICAgIH1cblxuICAgIC50ZXh0LWJyZWFrIHtcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICB9XG5cbiAgICBAZWFjaCAkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24gaW4gJHNldHRpbmctY29sb3ItYWN0aW9ucyB7XG4gICAgICAgIEBpbmNsdWRlIHV0aWwtdGV4dC1hY3Rpb24oJGFjdGlvbiwgJHNldHRpbmctY29sb3ItYWN0aW9uKTtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cblxuLyoqXG4gKiBQcm92aWRlcyBjbGFzcyBuYW1lIGZvciB0ZXh0IHN0eWxpbmcgd2l0aCBjb2xvciBwcm9wZXJ0eSBzcGVjaWZpZWQgYnkgcGFyYW1ldGVycy5cbiAqIEBwYXJhbSB7U3RyaW5nfSAkYWN0aW9uIFNldHMgY2xhc3MgbmFtZSBwb3N0Zml4LlxuICogQHBhcmFtIHtDb2xvcn0gJHNldHRpbmctY29sb3ItYWN0aW9uIFNldHMgY29sb3IgcHJvcGVydHkuXG4gKiBAY29udGVudCBFeHRlbmRhYmxlIG1peGluLlxuICovXG5AbWl4aW4gdXRpbC10ZXh0LWFjdGlvbigkYWN0aW9uLCAkc2V0dGluZy1jb2xvci1hY3Rpb24pIHtcbiAgICAudGV4dC0jeyRhY3Rpb259IHtcbiAgICAgICAgY29sb3I6ICRzZXR0aW5nLWNvbG9yLWFjdGlvbjtcbiAgICB9XG5cbiAgICBAY29udGVudDtcbn1cbiIsIi8qKlxuICogUHJvdmlkZXMgZ2xvYmFsIGNsYXNzIG5hbWVzIGZvciB0aGUgZWxlbWVudHMnIGZsb2F0IGFsaWdubWVudC5cbiAqL1xuQG1peGluIHV0aWwtZmxvYXQoKSB7XG4gICAgLmNsZWFyIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXVpLWNsZWFyZml4O1xuICAgIH1cblxuICAgIC5mbG9hdC1sZWZ0IHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLmZsb2F0LXJpZ2h0IHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxuICAgIC5mbG9hdC1ub25lIHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG4iLCIvKipcbiAqIFByb3ZpZGVzIGdsb2JhbCBjbGFzcyBuYW1lcyBmb3IgZGlzcGxheSBiZWhhdmlvciB3aXRoIGFkZGl0aW9uYWwgcmVzcG9uc2l2ZSBtb2RpZmllcnMuXG4gKi9cbkBtaXhpbiB1dGlsLXZpc2liaWxpdHkoKSB7XG4gICAgLmlzLWhpZGRlbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgQGVhY2ggJGJyZWFrcG9pbnQtYSwgJGVkZ2VzLWEgaW4gJHNldHRpbmctYnJlYWtwb2ludHMge1xuICAgICAgICAgICAgJGVkZ2UtbWluOiBoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbigkZWRnZXMtYSk7XG4gICAgICAgICAgICAkZWRnZS1tYXg6IGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWF4KCRlZGdlcy1hKTtcblxuICAgICAgICAgICAgJi0jeyRicmVha3BvaW50LWF9LW9ubHkge1xuICAgICAgICAgICAgICAgIEBpZiAkZWRnZS1tYXggPT0gbnVsbCB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlbHBlci1icmVha3BvaW50LW1lZGlhLW1pbigkZWRnZS1taW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtYmV0d2VlbigkZWRnZS1taW4sICRlZGdlLW1heCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGVhY2ggJGJyZWFrcG9pbnQtYiwgJGVkZ2VzLWIgaW4gJHNldHRpbmctYnJlYWtwb2ludHMge1xuICAgICAgICAgICAgICAgIEBpZiBoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbigkZWRnZXMtYikgPiBoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1pbigkZWRnZXMtYSkge1xuICAgICAgICAgICAgICAgICAgICAkZWRnZS1taW46IGhlbHBlci1icmVha3BvaW50LWVkZ2UtbWluKCRlZGdlcy1hKTtcbiAgICAgICAgICAgICAgICAgICAgJGVkZ2UtbWF4OiBoZWxwZXItYnJlYWtwb2ludC1lZGdlLW1heCgkZWRnZXMtYik7XG5cbiAgICAgICAgICAgICAgICAgICAgJi0jeyRicmVha3BvaW50LWF9LSN7JGJyZWFrcG9pbnQtYn0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICRlZGdlLW1heCA9PSBudWxsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWxwZXItYnJlYWtwb2ludC1tZWRpYS1taW4oJGVkZ2UtbWluKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVscGVyLWJyZWFrcG9pbnQtbWVkaWEtYmV0d2VlbigkZWRnZS1taW4sICRlZGdlLW1heCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pcy12aXNpYmxlIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktdmlzaWJsZTtcbiAgICB9XG5cbiAgICAuaXMtaW52aXNpYmxlIHtcbiAgICAgICAgQGluY2x1ZGUgaGVscGVyLXZpc2liaWxpdHktaW52aXNpYmxlO1xuICAgIH1cblxuICAgIC5pcy1zY3JvbGxhYmxlIHtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgfVxuXG4gICAgLmlzLW5vdC1zY3JvbGxhYmxlIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAuaXMtc2Nyb2xsYWJsZS14IHtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICB9XG5cbiAgICAuaXMtbm90LXNjcm9sbGFibGUteCB7XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAuaXMtc2Nyb2xsYWJsZS15IHtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICB9XG5cbiAgICAuaXMtbm90LXNjcm9sbGFibGUteSB7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAuaXMtcG9zaXRpb24tcmVsYXRpdmUge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgQGNvbnRlbnQ7XG59XG4iLCJAaW5jbHVkZSB1dGlsLXRleHQoKSB7XG4gICAgLnRleHQtbWlkZGxlIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAudGV4dC1zZWNvbmRhcnkge1xuICAgICAgICBjb2xvcjogJHNldHRpbmctY29sb3ItZ3JheS02O1xuICAgIH1cbn1cbiIsIiRzZXR0aW5nLXNwYWNpbmc6IChcbiAgICBiaWdnZXN0OiAycmVtLFxuICAgIGJpZ2dlcjogMS41cmVtLFxuICAgIGJpZzogMXJlbSxcbiAgICBkZWZhdWx0OiAwLjVyZW0sXG4gICAgc21hbGw6IDAuMjVyZW0sXG4gICAgcmVzZXQ6IDAsXG4pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/